                              ===========================
                              R E L E A S E    N O T E S
                              ===========================

             QLogic BCM57712/BCM578xx 10GbE C-NIC MFW (Management Firmware)

                        Copyright (c) 2015 QLogic Corporation
                                 All rights reserved

Version 7.13.00 (Jul 14, 2015)
==============================
Version 7.12.84 (Jul 10, 2015)
==============================
Fixes:
------
 1. Problem:    CQ80516 - CQ80524: Several PLDM issues.

    Change:     Support DSP0248 v1.1.0.

    Introduced: Day 1.

    Relevance:  OEM specific.

 2. Problem:    CQ77905 - For OEM specific MF, OS shows link up after
                Virtual function is down.

    Change:     Invoke driver message when the virtual link is down.

    Introduced: Day 1.

    Relevance:  OEM specific.

 3. Problem:    CQ73645 PCIE error on specific OEM platform.

    Change:     Support new PCIE configuration on specific OEM platform.

    Introduced: Day 1.

    Relevance:  OEM specific.

 4. Problem:    CQ80655 - Incorrect virtual function allocation after blade
                insertion.

    Change:     Regression insert after CQ80344 fix, number of VF's was set
                to maximum before configurations were applied. Fixed.

    Introduced: 7.12.81.

    Relevance:  OEM specific.

 5. Problem:    CQ80426 - MCTP I2C transaction occasionally timeouts.

    Change:     Reduce the handling time of unique MCTP OEM command.

    Introduced: Day 1.

    Relevance:  OEM specific.
Version 7.12.83 (Jul 03, 2015)
==============================
Fixes:
------
 1. Problem:    Regression after incorporating the fix for
                CQ78775/CQ80494/CQ80489.

    Change:     Back out from this change until full debug and solution.

    Introduced: 7.12.82.

    Relevance:  OEM specific.

Version 7.12.82 (Jul 02, 2015)
==============================
Fixes:
------
 1. Problem:    CQ80287 - mdump doesn't generate a message in the OS.

    Change:     Shared memory didn't reflect the correct dump status after
                reboot. populate shared memory with the right data.

    Introduced: 7.12.55.

    Relevance:  mdump.

 2. Problem:    CQ79849/79850/79851 - Incorporate NC-SI OEM command fixes
                from 7.12.62.

    Change:     Fixed.

    Introduced: 7.12.52.

    Relevance:  NC-SI OEM specific.

 3. Problem:    CQ80211 - LLDP not seen on the wire after NC-SI OEM command.

    Change:     Regression from the CQ79849 fix.

    Introduced: 7.12.56.

    Relevance:  NC-SI OEM specific.

 4. Problem:    CQ80449/80443/80476 - OEM NC-SI LLDP command strips DCBX
                from the LLDP.

    Change:     Fixed.

    Introduced: 7.12.56.

    Relevance:  NC-SI OEM specific.

 5. Problem:    CQ80475 - Incorrect MAC address after restore to factory default
                on OEM command in aux power mode.

    Change:     Use correct structure type for getting offset. Use empty value
                if factory default is used in response OEM command.

    Introduced: Day 1.

    Relevance:  OEM specific.

 6. Problem:    CQ78775/CQ80494/CQ80489 - PLDM: get PDR response is badly
                formed.

    Change:     Fix Endianity issue, along with wrong initialization values.

    Introduced: Day 1.

    Relevance:  OEM specific.

 7. Problem:    Fix removal of dependency in LLDP handover NVRAM option.

    Change:     Fixed.

    Introduced: 7.12.62.

    Relevance:  NC-SI OEM specific.

 8. Problem:    CQ80477 - MCTP OEM command caused card to hung.

    Change:     In unique case of MCTP fragmentation there was memory overrun,
                Fixed.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 9. Problem:    CQ78477 - DCC: Link status is not sync between VC and the OS.

    Change:     Driver sent false link notification to the DCC state machine.
                Accept link notification only if real link change happened.

    Introduced: 7.12.26.

    Relevance:  DCC.

Enhancements:
-------------
 1. Request:    Enable handover of LLDP packets to the BMC based on specific sub
                vendor ID.

Version 7.12.81 (Jun 25, 2015)
==============================
Fixes:
------
 1. Problem:    CQ80344 - Storage port expansion ROM is not loaded when working
                in OEM MF mode.

    Change:     Force advertisement of expansion ROM for the storage port when
                working in OEM MF mode, regardless of the fall back option.

    Introduced: Day 1.

    Relevance:  OEM specific.

 2. Problem:    CQ80004 - Incorrect default number of VF's on OEM MF mode.

    Change:     Remove unnecessary override of this value after reset into
                factory default.

    Introduced: Day 1.

    Relevance:  OEM specific.

 3. Problem:    CQ80424 - SMBUS UDID inconsistent after efuse. The UDID is
                based on the lowest port MAC address value. This value may
                change after initialization. A fix for CQ80339 may repopulate
                this value after initialization which may lead to change of
                value.

    Change:     Instead of using the local RAM value of the port MAC address,
                MFW will use the NVRAM stored value for the UDID value. This
                value will remain persistent.

    Introduced: 7.12.80.

    Relevance:  SMBUS ARP.

 4. Problem:    CQ78191 - UFP: vports down after stacked switch failback with
                multiple VLANs.

    Change:     Don't disable UFP virtual link state after physical link toggle.
                This sequence of events led to mismatch of the UFP vport
                configuration between the adaptor and switch. The OS drivers
                will not transmit on virtual port if the physical port is down,
                so such change will not cause regression.

    Introduced: Day 1.

    Relevance:  SMBUS ARP.

Enhancements:
-------------
 1. Request:    Response with media type of BaseT for BCM84834/BCM84858 PHY for
                NCSI request.

Version 7.12.80 (Jun 21, 2015)
==============================
Fixes:
------
 1. Problem:    CQ80339 - Failed Smbus transactions after upgrading 7.12.79.

    Change:     Missing part of the CQ80194 fix caused a regression in SMBUS
                functionality.

    Introduced: 7.12.79.

    Relevance:  SMBUS slave TX.

Version 7.12.79 (Jun 19, 2015)
==============================
Fixes:
------
 1. Problem:    Incorrect temperature report for the second sensor for OEM
                application.

    Change:     Fix second temperature sensor reporting.

    Introduced: 7.12.30.

    Relevance:  OEM mode.

 2. Problem:    CQ78812,CQ77177 unavailable PF7 was used for DMAE transaction.

    Change:     Don't do DMAE transaction if function enable bit is cleared.
                Fix miss use of sign parameter casting.

    Introduced: Day 1.

    Relevance:  OEM mode.

 3. Problem:    CQ79332 - OEM specific not showing expected default values.

    Change:     Addendum to the fixes incorporated in 7.12.55.

    Introduced: Day 1.

    Relevance:  OEM specific.

 4. Problem:    CQ80194 - SMBUS slave RX packet timeout.

    Change:     Changing the SMBUS clock stretch timeout for CQ79718, led to
                this regression. The timeout needs to be 25ms to give the
                FW time to send the response. having 25ms as the clock stretch
                is the max allowed by the spec.

    Introduced: 7.12.77.

    Relevance:  SMBUS slave TX.

Version 7.12.78 (Jun 11, 2015)
==============================
Fixes:
------
 1. Problem:    CQ80041 - OEM MF mode uses the same WWPN causes duplicate
                addressing issue.

    Change:     Add to the fix in 7.12.77.

    Introduced: Day 1.

    Relevance:  OEM MF mode.

 2. Problem:    CQ80171 - MCTP OEM configure command failed. regression starting
                from 7.12.77.

    Change:     Fixed.

    Introduced: 7.12.77.

    Relevance:  OEM specific.

Version 7.12.77 (Jun 09, 2015)
==============================
Fixes:
------
 1. Problem:    CQ79542 - S5 WoL failed under certain condition with NPAR
                enabled. This scenario occurs when NPAR driver unloaded with
                wake-on-lan enabled, and then host was rebooted in order to
                log into bios before powering it down, but after device was
                rebooted, the NPAR WoL configuration was wiped out.

    Change:     Retain NPAR WoL configuration for this scenario.

    Introduced: Day 1.

    Relevance:  NPAR WoL.

 2. Problem:    CQ79718 - SMBUS ARP sometime fails. There are 2 issues fixed.
                HW sometime set SMBUS event while RX FIFO is still empty, the
                MFW flag this as an error state and fails the transaction.
                second issue caused when the MFW fails to start reading the
                fifo before 25ms timeout, during this time HW stretch the clock
                low which leads to remote side fails the transaction.

    Change:     W/A to the HW empty fifo, MFW will start buffering SMBUS when
                event is triggered and FIFO is not empty. Change the SMBUS
                slave stretch time to 10ms to avoid 25ms clock stretch when MFW
                doesn't respond to the event in time.

    Introduced: Day 1.

    Relevance:  SMBUS.

 3. Problem:    CQ80041 - OEM MF mode uses the same WWPN causes duplicate
                addressing issue.

    Change:     Create WWPN and WWNN from NVRAM prefix set values and the
                Default MAC address instead of the NPAR image.

    Introduced: Day 1.

    Relevance:  OEM MF mode.

Version 7.12.76 (Jun 02, 2015)
==============================
Fixes:
------
 1. Problem:    CQ79904 - Adaptor fail to pause after PFC frame requests from
                the switch. DCBX got out of sync after the Nearest Customer
                Bridge LLDP packet with different PORT ID then the Nearest
                Bridge LLDP arrived.

    Change:     No need for the MFW to process Nearest Customer Bridge LLDP
                packets, filter them from MFW.

    Introduced: Day 1.

    Relevance:  Nearest Customer Bridge LLDP.

Version 7.12.75 (May 28, 2015)
==============================
Fixes:
------
 1. Problem:    CQ79573 - MCTP OEM commands responded with BUSY_RETRT_LATER.

    Change:     Clear the mailbox events after driver unloads.

    Introduced: Day 1.

    Relevance:  OEM specific.

 2. Problem:    CQ79909 - Crash dump needs to follow new template script.

    Change:     Add the fields required by the script.

    Introduced: 7.12.55.

    Relevance:  All.

 3. Problem:    CQ79788 - MCTP OEM command not showing expected device info.

    Change:     Device ID was returned along with sun-device ID - fixed.

    Introduced: Day 1.

    Relevance:  OEM specific.

 4. Problem:    CQ79504 - S-channel bounce event log shown on the switch.

    Change:     Port ID TLV is malformed which caused the switch to have 2
                entries of the adapter.

    Introduced: Day 1.

    Relevance:  OEM specific.

Version 7.12.55 (May 19, 2015)
==============================
Fixes:
------
 1. Problem:    CQ79144 - Existing MCTP OEM configuration wiped out after MFW
                update.

    Change:     Additional fix for CQ78479, after MFW upgrade restore
                configuration from the NVRAM.

    Introduced: 7.12.52.

    Relevance:  OEM specific.

 2. Problem:    CQ79068 - Fails to set FCoE WWPN & WWNN in OEM configuration.

    Change:     Fixed.

    Introduced: Day 1.

    Relevance:  OEM specific.

 3. Problem:    CQ78054 - MCTP OEM Command report link speed as 0.

    Change:     When requested link is set to auto negotiated the return link
                speed is zero. Fixed, now the current active speed is returned.

    Introduced: Day 1.

    Relevance:  OEM specific.

 4. Problem:    CQ78987 - pldm_get_version_supported CRC error.

    Change:     Wrong CRC32 generator.

    Introduced: Day 1.

    Relevance:  OEM specific.

 5. Problem:    CQ79332 - OEM specific not showing expected default values.

    Change:     Change the default configuration according to spec.

    Introduced: Day 1.

    Relevance:  OEM specific.

Enhancements:
-------------
 1. Request:    CQ78063 - Support new specification for MCTP OEM commands.

 2. Request:    CQ77756 - Add part number recovery.

 3. Request:    CQ76180 - Create on-chip (MFW) crash dump capability.

Version 7.12.54 (Apr 30, 2015)
==============================
Fixes:
------
 1. Problem:    CQ75504 - Incorrect asymmetric flow-control behavior.
                1. When user requests to disable TX, the local-device needs to
                   advertise both PAUSE and ASM_DIR, but to avoid
                   transmitting pause frames. In the 578xx, it would ignore
                   the TX disable.
                2. When user advertises RX-only, ASM_DIR was advertised instead
                   of PAUSE/ASM_DIR.

    Change:     Fix all problems.

    Introduced: Day 1.

    Relevance:  Asymmetric Autoneg Flow-Control.

 2. Problem:    EMC1442 sensor display was not correct.

    Change:     Fix sensor configuration according to spec.

    Introduced: 7.12.30.

    Relevance:  OEM specific.

 3. Problem:    CQ77841 - Fail to force link speed other then 20G in KR2.

    Change:     Avoid applying KR2 workaround in this case.

    Introduced: Day 1.

    Relevance:  KR2.

Enhancements:
-------------
 1. Request:    Add support for BCM84858 10G-baseT PHY, as well as for its
                auto-detection when external PHY configured is BCM84833.

Version 7.12.53 (Apr 17, 2015)
==============================
Fixes:
------
 1. Problem:    CQ78436 - NC-SI OEM command is failing on particular boards.

    Change:     Problem with 4 ports device that miss on configurable images for
                ports 3 & 4. Skip these ports in the commit command, unless
                explicit configure on those ports was made.

    Introduced: 7.8.11.

    Relevance:  OEM specific.

 2. Problem:    CQ78998 - MCTP OEM can't return to default.

    Change:     Regression due to CQ788879, fixed.

    Introduced: 7.12.52.

    Relevance:  OEM specific.

 3. Problem:    CQ78479 - MCTP OEM doesn't respond in out of the box AUX power.

    Change:     Remove restriction to enable the feature even after MCP
                upgrade.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 4. Problem:    CQ78174 - MCTP OEM command fails with BUSY response.

    Change:     Fix illegal memory array access.

    Introduced: Day 1.

    Relevance:  OEM specific.

Enhancements:
-------------
 1. Request:    CQ78063 - Add nvm cfg option for specific NC-SI OEM
                command.

Version 7.12.52 (Apr 02, 2015)
==============================
Fixes:
------
 1. Problem:    CQ78881 - MCTP OEM returns invalid wrong data.

    Change:     Fixed reverse logic on a boolean.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 2. Problem:    CQ78879 - MCTP OEM configuration not getting applied
                immediately in AUX power.

    Change:     Apply configuration while in AUX power out of the command
                context.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 3. Problem:    CQ78808 - iSCSI configuration is cleared every power cycle
                with OEM feature enabled.

    Change:     Apply pending configuration to iSCSI flash image if there, but
                no default configuration unless a direct reset into default
                command.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

Enhancements:
-------------
 1. Request:    CQ78063 - Support for new NC-SI OEM command.

Version 7.12.51 (Mar 26, 2015)
==============================
Fixes:
------
 1. Problem:    CQ78399 - MCTP OEM configuration command returns invalid
                data error.

    Change:     Index number don't have to match.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 2. Problem:    CQ78479 - MCTP endpoint disappears after system reboot.

    Change:     DID mismatch with SMBUS UDID fixed.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 3. Problem:    CQ78744 - MCTP vendor defined control command returns
                the same information twice in a row.

    Change:     fixed.

    Introduced: 7.12.12.

    Relevance:  OEM specific.

Version 7.12.50 (Mar 22, 2015)
==============================
Fixes:
------
 1. Problem:    CQ78398 - MCTP OEM configuration command doesn't stick and
                revert into zeros.

    Change:     Fixed.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 2. Problem:    CQ78396/78376 - MCTP OEM packet sent in malformed format.

    Change:     Fixed.

    Introduced: 7.12.31.

    Relevance:  OEM specific.

 3. Problem:    CQ78309 - SMBus UDID is not consistent across Reboots,
                power-cycles, full power. The DID changes between SF and
                MF mode and therfor the SMBUS UDID.

    Change:     For the SMBus UDID use only the MF DID.

    Introduced: Day 1.

    Relevance:  OEM specific.

 4. Problem:    CQ78357 - MCTP OEM configuration not revert into default
                values.

    Change:     Memset configuration used incorrect values.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 5. Problem:    MCTP supported command does not include PLDM.

    Change:     Add PLDM to supported command.

    Introduced: Day 1.

    Relevance:  MCTP.

 6. Problem:    PLDM hangs at get supported commands.

    Change:     Fix unaligned memory access.

    Introduced: 7.12.28.

    Relevance:  MCTP.

 7. Problem:    CQ78196 - MCTP OEM command returns incorrect change indication.

    Change:     Fix index tracking.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 8. Problem:    CQ78656 - MCTP OEM after incorrect configuration, device fails
                to respond.

    Change:     Returning error in the middle of a while loop caused the
                loop to be indefinite - fixed.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

Version 7.12.32 (Mar 05, 2015)
==============================
Fixes:
------
 1. Problem:    CQ78153 - OEM adapter fails external loopback diag test.
                LLDP packet with DCBX interfered with loopback test.

    Change:     DCBX should be disabled before the driver enables in this
                OEM adapter.

    Introduced: 7.12.28.

    Relevance:  OEM specific.

 2. Problem:    CQ77639 - OEM Specific ID disappeared after OS reboot.
                The ID disappeared after failed NC-SI command.

    Change:     Restore NC-SI configuration after NIG restore in
                case of OEM adapter.

    Introduced: Day 1.

    Relevance:  OEM specific.

 3. Problem:    CQ78245 - MCTP OEM command timed out.

    Change:     Aggregate together couple of NVRAM write access.

    Introduced: 7.12.30.

    Relevance:  OEM specific.

Enhancements:
-------------
 1. Request:    CQ77045 - Prevent shutdown due to negative cold temp.

Version 7.12.31 (Feb 26, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77021 - Push VPD-V0 firmware version into I2C VPD.

    Change:     Add 5ms delay to successive nvram writes.

    Introduced: 7.12.30.

    Relevance:  OEM specific.

Version 7.12.30 (Feb 19, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77840 - MCTP OEM command returns incorrect data.

    Change:     Read the data from the NVRAM.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 2. Problem:    CQ77942 - MCTP OEM configuration command gets rejected
                unjustified.

    Change:     Fix error condition.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 3. Problem:    CQ77918 - i2c MEZZ_VPD_UPDATE_N not being deasserted
                in expected time frame.

    Change:     Add sampling routine to main loop.

    Introduced: Day 1.

    Relevance:  OEM specific.

Enhancements:
-------------
 1. Request:    Add on-board temperature sensor reading over BSC(I2C).
                interface. To enable it, need to set:
                nvm cfg 240 (On-Board sensor interface) to BSC.
                nvm cfg 241 to the BSC address (e.g. 0x6c).

 2. Request:    Reflect MBA version in the scratchpad for drivers to read.

 3. Request:    CQ75439 - Change padding of firmware revisions
                from 0x00 to 0x20.

 4. Request:    CQ77021 - Push VPD-V0 firmware version into I2C VPD
                during reboot.

Version 7.12.29 (Feb 12, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77837 - MCTP OEM command returns unnecessary error status
                for redundant configuration.

    Change:     Ignore the redundant configuration in the command.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 2. Problem:    CQ76555 - UFP: vports down after stacked switch failover.

    Change:     After UFP reset force CNA operational bit to false on the next
                coming LLDP packet.

    Introduced: 7.10.

    Relevance:  UFP.

 3. Problem:    CQ77807 - MCTP OEM command not always return active
                configuration.

    Change:     Always return active configuration, if value meaningless return
                with value false.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

Enhancements:
-------------
 1. Request:    CQ77841 - Specific link negotiation according to OEM spec.

 2. Request:    CQ77991 - Support new revision of OEM spec.

Version 7.12.28 (Feb 05, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77676 - MCTP OEM commad reverts to default fails.

    Change:     Clear retained data after reset command.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 2. Problem:    CQ77639 - MCTP control command GET EID fails. EID
                not retained after OS reset. Missing restore of EID
                in case of NC-SI is enabled

    Change:     Restore EID from retained area regardless to NC-SI.

    Introduced: Day 1 .

    Relevance:  OEM specific.

Version 7.12.27 (Jan 29, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77245 - MCTP OEM commad returns invalid data.

    Change:     Fixed command build.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 2. Problem:    CQ77385/CQ77635 - MCTP OEM commad incorrect for 2 port device.

    Change:     Return values changed according to number of ports.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 3. Problem:    CQ77464 - MCTP OEM commad fails in AUX power.

    Change:     Fixed.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 4. Problem:    CQ75672 - NSCI:Unexpected response and reason code when run
                set link command to configure SFP+ with AUTO-negotiation enabled.

    Change:     Add capabilities check prior to applying the changes.

    Introduced: Day 1.

    Relevance:  578xx.

 5. Problem:    CQ76990 - NCSI:Incorrect reason code on the Set Link command
                response packet when system in OS loaded state.

    Change:     Check for driver presence.

    Introduced: Day 1.

    Relevance:  578xx.

 6. Problem:    CQ77735 - Missing value entry in OEM MCTP message.

    Change:     Added support for new value entry.

    Introduced: 7.12.26.

    Relevance:  OEM specific.

 7. Problem:    CQ77611/77755 - i2C interaction not correct on MFW.

    Change:     Fix I2C transaction size, complete proper handshake in case
                of any error detected.

    Introduced: Day 1.

    Relevance:  OEM specific.


Version 7.12.26 (Jan 20, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77193 - NC-SI OEM command return IPV6 attribute when
                current configuration is of IPV4 configuration.

    Change:     Fixed type returned.

    Introduced: 7.8.11.

    Relevance:  NC-SI OEM specific query.

 2. Problem:    CQ73043/76287 - DCC: Adapter does not sync DCC with VC module
                in some cases after blade removal and insertion from chassis.

    Change:     Do not change DCC Link States if driver is running.

    Introduced: Day 1.

    Relevance:  DCC.

 3. Problem:    CQ76895 - Additional fix for enhancement request.

    Change:     When WoL isn't enabled on the port (only NC-SI) there will
                be no link in AUX power.

    Introduced: 7.12.03.

    Relevance:  Unique OEM Device

 4. Problem:    CQ77554/CQ77246/CQ77248 - fix for list of issues with the new
                OEM switch depended mode CQ67481.

    Change:     Fixed all listed bugs.

    Introduced: 7.12.03.

    Relevance:  OEM specific.MF.


Enhancements:
-------------
 1. Request:    CQ77227 - Add OEM VPD corruption recovery mechanism.
                According to device ID, in case the device string that is read
                from the VPD is different than the expected fixed string, copy
                the pre-defined string to the VPD EEPROM.

 2. Request:    CQ67481 - Support new OEM switch depended multi function mode.

Version 7.12.25 (Jan 05, 2015)
==============================
Fixes:
------
 1. Problem:    CQ77233 - Card Disappear if enable WoL and Gen3 for external
                PHY of BCM84834.

    Change:     Add initialization for this PHY type.

    Introduced: 7.4.1.

    Relevance:  BCM84834.

 2. Problem:    CQ75611 - NC-SI OEM commands IPv6 values are not getting
                configured.

    Change:     Global variable should have been dword in size.

    Introduced: 7.8.11.

    Relevance:  NC-SI OEM specific query.

Version 7.12.03 (Dec 18, 2014)
==============================
Fixes:
------
 1. Problem:    CQ77103 - Problems updating OEM VPD over I2C.

    Change:     Consolidate all VPD transactions under same I2C ISOLATE lock,
                and read additional data in favor of preboot drivers

    Introduced: Day 1.

    Relevance:  I2C VPD.

 2. Problem:    CQ76286/CQ73889 - Device panic after continuous link toggling
                which caused constant PFC, and blocking the TX pipeline.

    Change:     Add support for per-COS NIG drain detection, similar to
                per-port NIG drain, where in case the NIG is not pulling
                per-COS packets from the BRB for 1 second, the MFW will
                apply NIG drain for this COS for 100ms.

    Introduced: Day 1.

    Relevance:  PFC.

Enhancements:
-------------
 1. Request:    CQ76895 - Add support for new unique DID, so NC-SI only doesn't
                require link in Vaux power.

 2. Request:    Remove append CRC to output file.

Version 7.12.02 (Dec 04, 2014)
==============================
Fixes:
------
 1. Problem:    CQ76678,76687,76763 NCSI is not working in AUX power.

    Change:     Regression because of CQ75604 fix change NC-SI activation logic.

    Introduced: 7.12.00.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    Change 1G-SFP module detection by verifying that not only it is
                not compliant with 10G-Ethernet (EEPROM address 3[6:4] is
                cleared), but that also it is a 1G-Ethernet compliant
                (EEPROM address 6[7:0] is NOT zero). This change is done in
                order not to enforce 1G link speed for non-Ethernet 8GB SFP
                modules.

 2. Request:    Add nvm cfg option for specific OEM.

 3. Request:    CQ74220 Remove AFEX support.

Version 7.12.01 (Nov 25, 2014)
==============================
Fixes:
------
 1. Problem:    CQ75814 - Loses Pings when teamed failover take place.

    Change:     If exists, use the reserved for FCoE MAC address as the
                source MAC address of the LLDP packets.

    Introduced: Day 1.

    Relevance:  578xx.

 2. Problem:    CQ72108 - CNA does not respond to LLDP frames with VLAN tag.

    Change:     Accept LLDP frames with default vlan ID (VLAN=1).by skipping
                the VLAN header.

    Introduced: Day 1.

    Relevance:  578xx.
Enhancements:
-------------
 1. Request:    CQ76322/CQ75608 - Detect and prevent pause-flood condition.
                MFW sample every 2 seconds the number of BRB full blocks and
                the number of packets pulled from the BRB.
                In case the number of BRB full blocks reached high limit for
                three consecutive times, and the number of packets pulled from
                the BRB remains 0 for 2 samples, a pause-flood condition is
                declared, and the pause/PFC are disabled. When thus condition
                is cleared, the pause/PFC are re-enabled.

 2. Request:    CQ76544 - Append four bytes of CRC and four bytes of trailer
                to the end of image output file.

Version 7.12.00 (Oct 30, 2014)
==============================
Fixes:
------
 1. Problem:    CQ74968 - IOP regression with some switchs that doesn't
                accept the DCBX with FCoE in the sub APP TLV.

    Change:     After 2 consecutive packets with CTRL TLV holds Seq=1 Ack=0
                will lead to restart again without the sub APP TLV.

    Introduced: 7.10.37.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ75604 - Add support for unique DID, so NC-SI only doesn't
                require link in Vaux power.

 2. Request:    CQ76533 - Changes to NC-SI OEM commands.

 3. Request:    CQ74867/CQ76289 - Add new nvm option 237 to control Post2
                coeff, IPreDriver and IFir in addition to the existing iDriver
                from option 212 for SFP ports.


Version 7.10.58 (Sep 29, 2014)
==============================
Fixes:
------
 1. Problem:    CQ75830 - Single port device with port-swap enabled shows zero
                MAC in SF mode.

    Change:     Add detection for single-port device, and in case load the nvm
                configuration straight.

    Introduced: Day 1.

    Relevance:  578xx.

 2. Problem:    CQ75626 - UFP: S-tag is preserved after UFP disable.

    Change:     Clear the S-tag value upon capable bit set to zero.

    Introduced: T7.10.

    Relevance:  UFP.

 3. Problem:    CQ75626 - CQ76020 - UFP: S-tag negotiation duration is too long.

    Change:     Send LLDP packet immediately upon detecting remote side UFP
                capable indication.

    Introduced: T7.10.

    Relevance:  UFP.

Version 7.10.57 (Aug 20, 2014)
==============================
Fixes:
------
 1. Problem:    CQ75139 CNA Pre-boot Config Mismatch fails on UFP.

    Change:     FCoE personality is now set by HII/EFI. MFW will reject
                mismatch configuration set by the switch with matching status
                code, along with the current setting in the response TLV.

    Introduced: T7.10.

    Relevance:  UFP.

 2. Problem:    CQ74182/CQ75012 MSI-X vector is not getting enabled properly
                in UFP.

    Change:     Storage PF's are listed from an uninitialized structure, fixed.

    Introduced: 7.10.52.

    Relevance:  MF.

Version 7.10.56 (Aug 14, 2014)
==============================
Fixes:
------
 1. Problem:    CQ74670/CQ74569 UFP L2 traffic stops on functions on one port
                when after disabling all functions on the other port.

    Change:     Limit restoring NIG registers to the same engine of which the
                last driver is unloaded.

    Introduced: 7.0.50.

    Relevance:  MF.

 2. Problem:    CQ74050/CQ74296/CQ74805 UFP vPORT reports link down while
                switch vPORT link is up.

    Change:     Perform channel reset upon driver notification and not based
                on periodic monitoring.

    Introduced: T7.10.

    Relevance:  UFP.

Version 7.10.55 (Aug 07, 2014)
==============================
Fixes:
------
 1. Problem:    CQ74864/CQ74629/CQ74809 - In UFP mode, Mac addresses and
                FCOE WWPN are getting corrupted after boot.

    Change:     Use appropriate pf enumeration when clearing MF data when
                UFP link goes down.

    Introduced: T7.10.

    Relevance:  UFP.

 2. Problem:    MFW does not provide UFP link up attention to the driver.

    Change:     Send attention to all the port's PF when UFP link goes up.

    Introduced: T7.10.

    Relevance:  UFP.

Enhancements:
-------------
 1. Request:    CQ74597 - Limit branding check to optic modules only, when
                "Optic Module Vendor Enforcement" option is set, and modules_pn
                file has the branding check set.

Version 7.10.54 (Aug 03, 2014)
==============================
Enhancements:
-------------
 1. Request:    Add support for port-swap via 2PORT_SWAP input signal (aka
                dynamic port-swap) for 2-port board designs, which do not have
                per-port output pins, meaning it supports only KR/KR2 designs,
                not covering SFP/copper. To utilize this option, need to select
                nvm option 166=6 (2P_01_SIG).

Version 7.10.53 (Jul 17, 2014)
==============================
Fixes:
------
 1. Problem:    CQ74090/74001 - Storage performance issue on BL460c Gen8 with
                534FLB connected to 3par P7400.

    Change:     DCBX initial defaults will include sub APP TLV that has
                FCoE set on PCP #3 instead on all traffic on PCP #0. PFC
                would be enabled on the PG #3 and ETS BW will be set to 50%.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    CQ73982 - DCC wasn't enabled in new switch independent
                MF mode.

    Change:     Enable DCC also for new switch independent
                MF mode.

    Introduced: 7.10.2.

    Relevance:  OEM specific.

 3. Problem:    CQ74196 - PCIE revision ID control wasn't apply on B0 ASIC.

    Change:     Apply PCIE revision ID control on B0 ASIC.

    Introduced: 7.10.36.

    Relevance:  57800,57810.

 4. Problem:    CQ71651 - Data advertised in OEM specific data query
                is wrong in some modes. latest fix had a wrong value applied.

    Change:     Apply the correct data in any mode.

    Introduced: 7.10.36.

    Relevance:  57712 + 578xx.

 5. Problem:    CQ74737 - BSOD at UFP/SRIOV mode.
                MFW didn't configure correct MSIX vector values in UFP/SRIOV
                mode.

    Change:     Apply the correct MSIX vector values in UFP mode.

    Introduced: 7.10.52.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ74085 - Disable L0s ASPM for E3 in GEN3.

 2. Request:    CQ73635 - Add PCIE revision ID NVRAM control.

 3. Request:    CQ74597 - Add support for branding check in SFP module
                verification (m_pn), and advance it's version number to 2.

Version 7.10.52 (Jul 07, 2014)
==============================
Fixes:
------
 1. Problem:    CQ74277/CQ73051 - NC-SI OEM specific command fails to
                set netmask prefix in IPv6 format.

    Change:     Subnet mask value should be 0..128 as it appears in the
                Bios setting.

    Introduced: 7.8.11.

    Relevance:  NC-SI OEM specific query.

 2. Problem:    CQ74066 - UFP + SRIOV, VFs are not getting enumerated.

    Change:     Added missing VF IGU blocks configuration in UFP mode.

    Introduced: 7.10.5.

    Relevance:  OEM specific.

 3. Problem:    CQ74463 - Thermal reporting for external PHY (84833) is
                missing.

    Change:     Restore 84833 temperature monitoring.

    Introduced: 7.10.07 (CQ72096).

    Relevance:  578xx + 84833 + temperature monitoring.

Version 7.10.51 (Jun 04, 2014)
==============================
Fixes:
------
 1. Problem:    CQ73899 - No link on 1G-baseT ports.

    Change:     Set the PHY access mode even in case of LFA.

    Introduced: T7.4 (LFA).

    Relevance:  57800.

 2. Problem:    CQ74165 - UFP - FCoE set on vPORT other then 1 reachs
                CVL.

    Change:     Set the BW allocation interrupt on the PMF and not the
                the currently configured PF. Only the PMF can change
                BW allocation in the HW/FW.

    Introduced: 7.10.5.

    Relevance:  OEM specific.

Version 7.10.50 (May 18, 2014)
==============================
Fixes:
------
 1. Problem:    CQ71651 - Data advertised in OEM specific data query
                is wrong in some modes.

    Change:     Apply the correvt data in any mode.

    Introduced: 7.2.0.

    Relevance:  57712 + 578xx.

Enhancements:
-------------
 1. Request:    CQ73972 - Add support for NVM CFG option for specific OEM.

Version 7.10.35 (May 08, 2014)
==============================
Fixes:
------
 1. Problem:    CQ73518 - No link on 578xx-KR2 port.

    Change:     Apply CQ73346 changes to KR only.

    Introduced: 7.10.34.

    Relevance:  578xx-KR2.

Version 7.10.34 (Apr 17, 2014)
==============================
Fixes:
------
 1. Problem:    CQ73346 - No link on 578xx-KR port with swapped polarity lane
                (nvm option 135 is set).

    Change:     Set back polarity settings when phy is initialized in case it
                was run over by previous link owner.

    Introduced: T7.8c.

    Relevance:  578xx-KR.

Version 7.10.33 (Apr 13, 2014)
==============================
Fixes:
------
 1. Problem:    CQ73346 - No link on 578xx-KR port with swapped polarity lane
                (nvm option 135 is set).

    Change:     Avoid clearing RX polarity setting in KR mode.

    Introduced: T7.8c.

    Relevance:  578xx-KR.

Version 7.10.32 (Mar 27, 2014)
==============================
Fixes:
------
 1. Problem:    iSCSI personality is overwritten in the NVRAM by the
                UFP configuration, prevents iSCSI to run.

    Change:     Ignore UFP personality configuration if iSCSI is set.

    Introduced: 7.10.5.

    Relevance:  OEM specific.

Version 7.10.31 (Mar 07, 2014)
==============================
Fixes:
------
 1. Problem:    NC-SI had to be disabled in  OEM specific MF mode.

    Change:     Allow NC-SI to coexist with OEM specific MF mode.

    Introduced: 7.10.5.

    Relevance:  OEM specific.

 2. Problem:    Some partition configurations are missing in oem specific MF
                mode

    Change:     Apply link, pause and SRIOV parameters configuration from
                the NPAR image.

    Introduced: 7.10.5.

    Relevance:  OEM specific.

Version 7.10.30 (Mar 02, 2014)
==============================
Fixes:
------
 1. Problem:    CQ73022 - In OEM specific data query flows in MF allowed mode,
                PCI functions are not seen.

    Change:     Limit Ethernet function type check to new switch independent
                mode.

    Introduced: 7.10.7.

    Relevance:  OEM specific query.

 2. Problem:    CQ73019 - In OEM specific data query, ISCSINAME and ISCTBOOT
                fields are missing for a single iSCSI function trying to boot
                from an uneven function number.

    Change:     Check IBFT on both engines.

    Introduced: Day 1.

    Relevance:  OEM specific query.

 3. Problem:    CQ72445 - In OEM specific data query, FCoE does not return
                statistics in SF mode.

    Change:     Regression due to CQ72623/CQ72624 fix. Improved the fix.

    Introduced: 7.10.07.

    Relevance:  NC-SI OEM specific query.

 4. Problem:    CQ72426 - NC-SI OEM response indicates incorrect capabilities.

    Change:     Previous bug fix was incomplete, EEE was always supported. Now
                it would only show on supported devices.

    Introduced: 7.10.07.

    Relevance:  NC-SI OEM specific query.

 5. Problem:    CQ73069 - machine may halt after upgrading to MFW, due to NVM
                corruption, while updating CRC to the wrong location.

    Change:     Update CRC on OEM specific file on the correct location,
                depending on the actual file size.

    Introduced: T7.10.

    Relevance:  Specific OEM.

 6. Problem:    NC-SI should be mutely exclusive from OEM specific.MF mode.

    Change:     Prevent NC-SI in case of OEM specific MF mode.

    Introduced: T7.10.5.

    Relevance:  Specific OEM.

 7. Problem:    CQ73075 - prevent FCoE Boot target detection.

    Change:     Regression due to CQ72659 fix, reverted in the fix.

    Introduced: T7.10.7.

    Relevance:  578xx.

Version 7.10.07 (Feb 13, 2014)
==============================
Fixes:
------
 1. Problem:    CQ72426 - NC-SI OEM response indicates incorrect capabilities.

    Change:     Fix a bug in the response code.

    Introduced: Day 1.

    Relevance:  NC-SI OEM specific query.

 2. Problem:    CQ72623/CQ72624 - In OEM specific data query flows using new
                switch independent mode Ethernet functions are shown instead of
                iSCSI functions.

    Change:     Upload function's personality correctly in new switch
                independent mode.
                Note: This fix must be accompanied with PXE fix as well, which
                provide the correct number of iSCSI functions.

    Introduced: T7.10.

    Relevance:  OEM specific data query flows in new switch independent mode.

 3. Problem:    CQ72414 - NC-SI OEM specific returns incorrect value.

    Change:     Fixed bug in little to big endian swap.

    Introduced: 7.8.11.

    Relevance:  NC-SI OEM specific query.

 4. Problem:    CQ72865 - NC-SI OEM specific data query fails in SF mode.

    Change:     Accept the command if partition ID matches Channel ID.

    Introduced: 7.10.4.

    Relevance:  NC-SI OEM specific.

 5. Problem:    Incorrect error code returned in new OEM switch dependent MF.

    Change:     Fix Error code.

    Introduced: 7.10.5.

    Relevance:  OEM specific.

 6. Problem:    CQ72096 - PHY FW upgrade after MFW upgrade takes very long time.

    Change:     Avoid unnecessary BCM84833 PHY temperature read to minimize the
                PHY lock time. In case PHY temperature sampling is enabled,
                and a SWIM fails to load for over 10 seconds, then stop this
                routine until next reboot.

    Introduced: T7.2.

    Relevance:  BCM84833.

 7. Problem:    CQ72866 - NCSI OEM fails in Switch independent mode and at
                first boot.

    Change:     Add a new indication to the driver to avoid buffer overrun.

    Introduced: T7.10.4.

    Relevance:  NC-SI OEM specific.

 8. Problem:    CQ72659 - FCoE Boot from SAN sometimes fails.

    Change:     LLDP has missed link flap. In case the driver notifies on
                link change event, lldp will update it's internal state
                regardless of it's previous. Also zero local ack number
                upon link up event.

    Introduced: day 1.

    Relevance:  578xx.

Version 7.10.06 (Feb 03, 2014)
==============================
Fixes:
------
 1. Problem:    CQ72411 - OEM Get Address Command Returns value of FF's in SF
                mode.

    Change:     Uninitialized MAC address. has the value of FF's, convert it to
                zeros.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ72426 - Get Inventory returns incorrect Fw Version.

    Change:     Fixed a bug for numbers larger then 10 in the minor filed.

    Introduced: 7.10.0.

    Relevance:  All.

 3. Problem:    CQ72096 - PHY FW upgrade after MFW upgrade takes very long time.
                Upgrading MFW while it is running, may prevent it to access the
                NVRAM in order to load SWIMs due to arbitration problem.
                In case MFW thread wakes up from SLEEP state, and needs to load
                SWIM, MFW tries that for up to 10 seconds, and after timeout,
                it resets the thread, i.e. change its state from SLEEP to IDLE,
                but it doesn't release the thread resources.

    Change:     Release the LINK thread resources which include the HW LOCK
                that prevented the PHY FW upgrade process.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ72445 - FCoE stats returns no values in MF mode.

    Change:     Regression from CQ71035 fix, improved the solution.

    Introduced: MFW 7.10.01.

    Relevance:  OEM specific data query flows.

 5. Problem:    CQ72604 - Get/Set pass through NC-SI OEM command fails.

    Change:     Error condition was wrong - fixed.

    Introduced: MFW 7.10.0.

    Relevance:  OEM specific data query flows.

 6. Problem:    CQ725011 - Network device data is incorrect for Mezz card.

    Change:     Dropped the smbus packet because other side didn't set the
                TO bit in the MCTP header. changed so wouldn't be defensive
                and accept packet even with TO bit cleared.

    Introduced: MFW 7.10.0.

    Relevance:  NCSI over SMBUS.

 7. Problem:    NC-SI access the NIG register via a lookup table which not
                stored properly.

    Change:     Move the lookup table into static memory. Initialize the table
                as part of NC-SI initialization.

    Introduced: MFW 7.10.0.

    Relevance:  NCSI over RMII.

Enhancements:
-------------
 1. Request:    CQ72297 - Add OEM specific NVM-CFG option, only applicable to
                specific OEM.

Version 7.10.05 (Jan 20, 2014)
==============================
Fixes:
------
 1. Problem:    CQ72228 - BDN CRC mismatch when using diag NVM CRC command.

    Change:     Recalculating the image CRC when MFW updates the image.

    Introduced: 7.10.03.

Enhancements:
-------------
 1. Request:    CQ68421 - Add support for a new OEM switch depended multi
                function mode.

Version 7.10.04 (Jan 06, 2014)
==============================
Fixes:
------
 1. Problem:    MFW populates OEM switch depended data in non-switch depended.
                mode.

    Change:     Load OEM switch depended data only in correct mode and only if
                OEM switch depended data image exists.

    Introduced: 7.10.03.

 2. Problem:    MFW doesn't force 1G link speed for RJ45 SFP module type.

    Change:     Fix incorrect code integration.

    Introduced: 7.10.0.

 3. Problem:    NC-SI initializes incorrect link configuration.
                In case MFW configured link speed is different than 10G, link
                will not come up. Regardless, flow-control settings will be
                cleared.

    Change:     Initialize NC-SI link attributes in NC-SI terms, rather than
                BC terms.

    Introduced: Exposed in 7.8.7. (Originated at T6.2).

    Relevance:  NC-SI enabled (on any port).

 4. Problem:    When Flow-Control is set to autoneg, MFW will not advertise any
                pause capabilities since MFW clears the advertised flow control
                parameter instead of setting this RX/TX. This will probably
                cause the LFA to fail, thus yield link flap between preboot and
                MFW.

    Change:     Restore MFW setting of advertised flow control always to RX/TX.

    Introduced: 7.8.7.

    Relevance:  MFW link.

 5. Problem:    NC-SI statistics are not cleared during initialization.

    Change:     Clear NC-SI statistics on init.

    Introduced: Day 1.

    Relevance:  NC-SI enabled (on any port).

 6. Problem:    NC-SI don't have enough descriptors.

    Change:     NC-SI doesn't release descriptors on retry packet, fixed.

    Introduced: 7.10.0.

    Relevance:  578xx + NC-SI enabled.

 7. Problem:    10M-FD was advertised in case 10M-HD was requested for
                BCM54618SE.

    Change:     Advertise 10M-FD only when it is requested.

    Introduced: 7.8.17.

    Relevance:  BCM54618SE.

 8. Problem:    CQ72113: OEM specific query is not showing few values properly.

    Change:     Fix port_type, link_status_change bit, and func_enable fields.

    Introduced: Day 1.

    Relevance:  OEM specific query.

 9. Problem:    CQ72188 - 578xx fails to link with KinnexA SFP+T (1GBT) module.
                This fix handles only the link issue, assuming the SFP EEPROM is
                accessible, which is another aspect of the problem, handled in
                MFW 7.10.04.

    Change:     Reset TX_EN when RJ45 SFP module is detected.

    Introduced: T7.8.

    Relevance:  SFP-RJ45 module.

10. Problem:    When MFW link speed is set to 10M-HD/100M-HD/2.5G/20G in nvram
                (option 59), then the MFW would have initialized the speed
                incorrectly.

    Change:     Handle these link settings correctly.

    Introduced: T7.8.

    Relevance:  NCSI.

Enhancements:
-------------
 1. Request:    CQ70040 - Add a support NC-SI OEM specific command.

 2. Request:    CQ72287 - Add support for Luma SFP+ (1GBT RJ45) module.
                This module lacks the connector type, so added this unspecified
                type while checking if the module compliance with 10G ethernet
                or not.

Version 7.10.03 (Dec 10, 2013)
==============================
Fixes:
------
 1. Problem:    CQ71488 - Error handling NC-SI over SMBus which need assembly.

    Change:     1. Ignore MCTP payload violations, the spec states middle
                packet payload with size smaller to 1st payload may drop,
                Ignore this violation and don't drop the packet.
                2. Validate MCTP message type once for the 1st packet.

    Introduced: 7.8.12.

    Relevance:  NCSI over SMBUS.

 2. Problem:    Expansion ROM support isn't advertised for higher functions
                in new switch independent mf mode.

    Change:     Advertise support for higher functions in this mode as well.

    Introduced: 7.10.2.

    Relevance:  New switch independent mf mode.

 3. Problem:    rmmod indication is cleared after mcp resets, hence potential
                NMI might occur due to OEM specific data query flow, in
                case IOMMU is enabled.

    Change:     Retain rmmod indication across pure mcp reset (but not across
                chip reset).

    Introduced: day 1.

    Relevance:  OEM specific data query flow, IOMMU enabled.

 4. Problem:    CQ72095 New switch independent configuration is erased even
                without a valid CLP configuration.

    Change:     Run clp_exit flow in NPAR1.5 mode only in case CLP
                configuration is valid.

    Introduced: 7.10.2.

    Relevance:  New switch independent mf mode.

 5. Problem:    CQ71353 - KR device cannot get link on all 4 ports when
                connected to a 1G (54680E) IOM.

    Change:     Force CL48 sync_status LOW to prevent Warpcore from getting
                stuck in CL73 parallel detect loop while link partner is sending
                CL37 pages on all lanes.

    Introduced: Day 1.

    Relevance:  578xx-KR.

 6. Problem:    CQ71813 - iSCSI boot parameters aren't shown in OEM specific
                data query flow on the 2nd port/iSCSI Function 1.

    Change:     1. Adjust destination address correctly for the second port.
                2. Compare the expected PFN with the current bus/device,
                   excluding the function.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 7. Problem:    CQ71910 - Mac LLA1 advertised in OEM specific stats is byte
                swapped for FCoE and iSCSI.

    Change:     Advertise MSB structure in OEM specific headers.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

 8. Problem:    CQ71821 - Advertised fields in OEM specific stats may get
                corrupted during DMA operation.

    Change:     For every DMA operation, if the requested object destination is
                about to cross page boundary and the destination address is not
                aligned to 32bit, split the request into two, by DMA the first
                part (rounded up, so part of it may still cross the boundary),
                and then DMA the second half from the page boundary.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 9. Problem:    Wrong MF device ID in New switch independent mode.

    Change:     Change MF device ID in the right mode.

    Introduced: 7.10.2.

    Relevance:  New switch independent mf mode.

10. Problem:    Enter new switch independent mode under wrong condition.

    Change:     Fix the condition to enter the new switch independent mode.

    Introduced: 7.10.2.

    Relevance:  New switch independent mf mode.

11. Problem:    Incorrect 8073 link partner detection for KR2 work-around.

    Change:     Fix 8073 detection.

    Introduced: 7.8.1.

    Relevance:  57840-KR2.

12. Problem:    CQ71583 - OS crash on VF FLR.

    Change:     Avoid handling FLR on non-existing VFs.

    Introduced: day 1.

    Relevance:  VF FLR flows.

Enhancements:
-------------
 1. Request:    Add new SWIM8.

 2. Request:    Add initial OEM protocol support BD over NC-SI.

Version 7.10.02 (Nov 05, 2013)
==============================
Fixes:
------
 1. Problem:    CQ71175 - Possible correctable errors seen in systems running
                at Gen2 rate on a Gen3 enabled HW.

    Change:     Change default signal detect settings if Gen3 enabled hardware
                is linked up in a non-Gen3 system.

    Introduced: day 1.

    Relevance:  57840 - non Gen3.

 2. Problem:    CQ71373 - WWNN/WWPN addresses advertised in OEM specific data
                query responses was wrong.

    Change:     Swap bytes accordingly.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

 3. Problem:    CQ71244 - iSCSI boot parameters aren't shown in OEM specific
                data query flow.

    Change:     1. Re-read relevant region in shmem upon each query cycle and
                   not only once during MFW init, as MBA sets this region after
                   MFW is already up.
                2. Change fields size to avoid DMA-E overwrites due to dword
                   alignment and due to max field size in the feature.
                3. Fix headers offset to be read to find host address to copy
                   data from.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 4. Problem:    CQ71247 - iSCSI stats shown in OEM specific data query flow are
                2 bytes shifted.

    Change:     Change field sizes not to exceed 255 bytes.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 5. Problem:    CQ70554/CQ71071 - Failed to acquire 1G link over CL37 against
                1Gb switch. This issue happens when the device is in KR mode,
                and the switch advertises only 1G link speed over CL37.

    Change:     To solve this, the auto-detect mode was enabled in the Wrapcore
                allowing it to select the higher speed protocol between 10G-KR
                (over CL73), or go down to 1G over CL73 when there's
                indication for it.

    Introduced: Day 1.

    Relevance:  578xx-KR.

 6. Problem:    CQ68627 - Incorrect port value is displayed for specific Passive
                DAC (Direct Attached Cable) with missing Passive indication in
                its EEPROM.

    Change:     In case there's a DAC indication, but without neither Passive
                or Active indication (In SFP+ Cable Technology field), treat
                this cable as a Passive DAC.

    Introduced: Day 1.

    Relevance:  578xx-SFP.

Enhancements:
-------------
 1. Request:    CQ69144 - Add a support for SMBUS packet assembly.

 2. Request:    CQ71639 - use universal licensing as the default license
                validation mechanism.

 3. Request:    CQ69340 - Restructure SMBUS code into a SWIM and always include
                it in the MFW image.

 4. Request:    CQ67481 - Implement general MCTP control and SMBUS
                communications.

 5. Request:    Move ncsi init code to SWIM, to improve scratchpad usage.

 6. Request:    CQ67481 - Implement CDCP and other EVB TLVs towards the
                switch and splitting LLDP state machines to two: NB and
                non-TPMR.

 7. Request:    CQ67481 - Implement concurrent NCSI over RMII & SMBUS
                and separate the SMBUS handling from the NCSI.

 8. Request:    Advertise F-Code version to driver.

 9. Request:    CQ71550 - Change MFW version display from 'hex' to 'decimal'.

10. Request:    CQ71492 - Support new switch independent MF mode:
                a. Move to MF_ALLOWED mode in case CLP configuration is
                   received in this mode (unlike original switch dependent
                   mode).
                b. Don't use MF device id from nvram in case of MF_ALLOWED mode
                   (but only in other MF modes).

Version 7.10.01 (Oct 10, 2013)
==============================
Fixes:
------

 1. Problem:    CQ71172 - max number of VFs advertised in OEM specific query
                might be wrong.

    Change:     Advertise static value of 64 for that field.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 2. Problem:    CQ71209 - PCI vendor ID advertised in OEM specific query is
                byte swapped.

    Change:     Change byte order.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 3. Problem:    CQ71035 - iSCSI stats aren't shown in MF mode in OEM specific
                data query flow.

    Change:     Fix function personality check logics.

    Introduced: MFW 7.8.54.

    Relevance:  OEM specific data query flows.

 4. Problem:    CQ71026 - Mac admin advertised in OEM specific stats is byte
                swapped for FCoE and iSCSI.

    Change:     Advertise MSB structure in OEM specific headers.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

 5. Problem:    wwnn and wwpn addresses advertised in OEM specific stats is
                wrong.

    Change:     1. Advertise this field as text and not as byte oriented.
                2. In SF mode take those addresses from per port shmem.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

Enhancements:
-------------
 1. Request:    CQ69328 - Update tool chain to gcc 4.8.0 and binutils 2.21.1 to
                save scratchpad thanks to advanced compiler optimizations
                and more strict compiler warnings to prevent bugs.

 2. Request:    Add HSI to get VPD offset and size from nvram.

 3. Request:    New Warpcore microcode (ver: 0102; checksum = 0x0E22).

 4. Request:    Add HW LOCK for SMBUS to sync between MFW and uEFI driver.

 5. Request:    Add extra 32 bits in shmem2 for FCoE/iSCSI boot driver host
                address to indicate address above 4GB region.

Version 7.8.55 (Sep 17, 2013)
=============================
Fixes:
------
 1. Problem:    During NC-SI OEM command, MFW tries to access
                unreachable image.

    Change:     Fix loop in the command to run over number
                of ports instead of number of NC-SI channels.

    Introduced: 7.8.54.

    Relevance:  NCSI OEM specific flows.

Version 7.8.54 (Sep 15, 2013)
=============================
Fixes:
------
 1. Problem:    CQ70964 - NC-SI OEM command fails for 2nd port.

    Change:     Ignore channel field in NC-SI command.

    Introduced: 7.8.20.

    Relevance:  NCSI OEM specific flows.

 2. Problem:    CQ70955 - NC-SI OEM command causes nvm crc mismatch.

    Change:     Added missing calculation of CRC after NVRAM write.

    Introduced: 7.8.51.

    Relevance:  NCSI OEM specific flows.

 3. Problem:    CQ68816, CQ69633 - Missing FCoE and iSCSI per function section
                in OEM specific data query flow.

    Change:     Added FCoE values to the flow and added dynamic advertisement
                of number of Ethernet, FCoE and iSCSI functions supported.

    Introduced: day 1.

    Relevance:  OEM specific data query flow.

Version 7.8.53 (Sep 10, 2013)
=============================
Fixes:
------
 1. Problem:    CQ70318 - NC-SI OEM commands return incorrect values,
                Wrong NVRAM section was accessed.

    Change:     fix NVRAM access.

    Introduced: 7.8.51.

    Relevance:  NCSI OEM specific flows.

 2. Problem:    CQ70087 - Some NC-SI OEM commands return incorrect values on
                specific boards.

    Change:     Change NVRAM access to be GRC based.

    Introduced: 7.8.50.

    Relevance:  NCSI OEM specific flows.

Version 7.8.52 (Sep 04, 2013)
=============================
Fixes:
------
 1. Problem:    CQ70621 - PCI vendor ID advertised in OEM specific data query
                is all zeros.

    Change:     Rewrite PCI vendor ID as it was overwritten with zeros due to
                DMA alignment.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

 2. Problem:    CQ70839 - intermittent system hang on OEM specific platform.

    Change:     Increased margins for PCI-E I/F for wider interoperability.

    Introduced: day 1.

    Relevance:  57840 B1.

 3. Problem:    Wrong value checked in pcie prbs test (part of serial halt
                test).

    Change:     Fixed value checked.

    Introduced: 7.8.17.

    Relevance:  57xxx.

Version 7.8.51 (Aug 15, 2013)
=============================
Fixes:
------
 1. Problem:    MCP trace is full with temperature debug prints.

    Change:     Remove temperature debug prints.

    Introduced: 7.8.9.

    Relevance:  578xx-boards with temperature sensors.

 2. Problem:    CQ69921 - DCC state remains in error state in BFS flow.

    Change:     Flap link after clp exit event to trigger new DCC version query
                from VC in order to recover DCC state.

    Introduced: T7.4 (LFA).

    Relevance:  MF allowed mode, DCC enabled, LFA is active.

 3. Problem:    CQ70422 - NC-SI OEM commands, some fields are not accessible.

    Change:     Change dependency according to another field.

    Introduced: 7.8.11.

    Relevance:  NCSI OEM specific flows.

 4. Problem:    CQ70318 - NC-SI OEM commands return incorrect values
                for some attributes.

    Change:     Additional fix for endianity swapping.

    Introduced: 7.8.11.

    Relevance:  NCSI OEM specific flows.

 5. Problem:    CQ70188 - Intermittent loss of NCSI connection to iLO/BMC.

    Change:     There was double free of memory in the case of retransmitted
                packet.

    Introduced: 7.8.11.

    Relevance:  NCSI.

 6. Problem:    CQ70087 - NC-SI OEM Set command causes wrong NVRAM fields to be
                changed.

    Change:     Added a bitmask indicating  which command has been modified.
                Only these specific command will be copied into the NVRAM.

    Introduced: 7.8.11.

    Relevance:  NCSI OEM specific flows.

Enhancements:
-------------
 1. Request:    CQ69193 - Support HSI to get iSCSI persistent nvm image offset
                and size.

Version 7.8.50 (Aug 01, 2013)
=============================
Fixes:
------
 1. Problem:    CQ70042,CQ70045 - NC-SI OEM commands return incorrect values
                for some attributes.

    Change:     fixed bug in little to big endian swap.

    Introduced: 7.8.11.

    Relevance:  NCSI.

Version 7.8.21 (Jul 21, 2013)
=============================
Fixes:
------
 1. Problem:    DCC LINK_NOTIFICATION indication might not be sent to the VC.

    Change:     Don't send DCC LINK_NOTIFICATION to the VC until validating
                that filters are enabled after receiving LOAD_DONE from the
                driver.

    Introduced: T7.4 (LFA).

    Relevance:  57xxx.

Version 7.8.20 (Jul 18, 2013)
=============================
Fixes:
------
 1. Problem:    CQ70084 - Wrong handling of NCSI OEM command when sent to
                a package (channel id 0x1F).

    Change:     Execute on all channels when the command is addressed
                to the package (channel 0x1F).

    Introduced: 7.8.11.

    Relevance:  57xxx.

 2. Problem:    CQ70150 - Potential NMI and system reboot when upgrading nvm
                images on a system with IOMMU enabled and running OEM specific
                data query flows.

    Change:     Disable OEM specific data query flows upon mcp reset which
                isn't chip reset, as that shows that mcp was reset without
                system reset, hence we might already be after rmmod was
                triggered.

    Introduced: day 1.

    Relevance:  Linux IOMMU enabled, OEM specific data query flow.

 3. Problem:    NCSI over MCTP SMBUS fail to work.

    Change:     NCSI packets need to be cleared when freed after handling.

    Introduced: 7.8.11.

    Relevance:  NCSI over SMBUS.

Version 7.8.19 (Jul 13, 2013)
=============================
Fixes:
------
 1. Problem:    CQ69921 - DCC changes can't be performed (VC error) if no link
                flap since boot, as initially MFW didn't advertise support in
                all mandatory TLVs, and VC entered to error state.

    Change:     Mark all mandatory TLVs are supported anyway.

    Introduced: 7.4.2 (upon LFA feature).

    Relevance:  57xxx.

 2. Problem:    CQ70084 - Wrong handling of NCSI OEM command when sent to
                a package (channel id 0x1F).

    Change:     Excute on all channels when the command is addressed
                to the package (channel 0x1F).

    Introduced: 7.8.11.

    Relevance:  57xxx.

Version 7.8.18 (Jul 04, 2013)
=============================
Fixes:
------
 1. Problem:    CQ69955 - Default DCBX values overwrite minimum BW values when
                receiving LLDP packets without DCBX from remote side.

    Change:     Send DCBX results to host only if LLDP packet from remote peer
                included DCBX TLVs.

    Introduced: day 1.

    Relevance:  57xxx.

Version 7.8.17 (Jul 02, 2013)
=============================
Fixes:
------
 1. Problem:    CQ69561/CQ69564/CQ69542 - link flaps occur when link speed is
                lower than 10G due to changes entered for CQ68365, to avoid
                intermittent link when speed changes between 10Mbps, 100Mpbs
                and 1000Mbps.

    Change:     Revert change for CQ68365 for now.

    Introduced: 7.8.12.

    Relevance:  578xx.

 2. Problem:    CQ69770 - 10Mb/100Mb Half-Duplex are always advertised when
                only 10Mb/100Mb Full-Duplex configured.

    Change:     Select 10/100Mb half-duplex based of the speed capability mask.

    Introduced: Day 1.

    Relevance:  848xx/54618se.

Version 7.8.16 (Jun 27, 2013)
=============================
Fixes:
------
 1. Problem:    CQ68643 - Bad VF configuration in MF_ALLOWED mode.

    Change:     Fix resource allocation logics in MF_ALLOWED mode.

    Introduced: 7.8.15.

    Relevance:  57xxx.

 2. Problem:    CQ69693 - Intermittently DCBX negotiation fails, if remote side
                keeps on sending packets with sequence 1 and ack 0 after link
                flap.

    Change:     In such a case resend packets immediately to enable fast
                convergence.

    Introduced: day 1.

    Relevance:  57xxx.

Version 7.8.15 (Jun 24, 2013)
=============================
Fixes:
------
 1. Problem:    CQ69691 - When CLP configuration marks to split VFs equally
                between PFs, MFW also allocated VFs to hidden devices.

    Change:     Split VFs equally only between non hidden devices.

    Introduced: 7.4.3.

    Relevance:  57xxx.

 2. Problem:    CQ68643 - In MF_ALLOWED mode, MFW read VF configuration from
                wrong shmem location, hence CCM configuration didn't affect.

    Change:     In MF_ALLOWED mode, read values from SF location if CLP
                configuration haven't arrived.

    Introduced: 7.4.3.

    Relevance:  57xxx.

 3. Problem:    CQ69617 - PTE write access errors might occur when IOMMU is
                active due to OEM specific data query flows.

    Change:     Added rmmod HSI to indicate to MFW to stop running those flows
                after linux driver removal.
                Change will work only when using bnx2x version 1.78.22 and
                latter.

    Introduced: day 1.

    Relevance:  Linux IOMMU enabled, OEM specific data query flow.

Version 7.8.14 (Jun 17, 2013)
=============================
Fixes:
------
 1. Problem:    CQ69377 - Potential CRC mismatch to shadow image used to support
                latest NC-SI OEM commands (fix in 7.8.13 didn't cover all
                cases).

    Change:     Fix CRC even if not all FCoE/iSCSI boot images are included.

    Introduced: 7.8.11.

    Relevance:  57xxx.

 2. Problem:    CQ69484 - driver fails to link up in MF_ALLOWED mode, if CLP
                configuration is not in DCC mode.

    Change:     Don't disable the function upon first driver load if DCC isn't
                enabled in CLP configuration (related to fix for CQ #CQ69349).

    Introduced: 7.8.13.

    Relevance:  57xxx.

Version 7.8.13 (Jun 05, 2013)
=============================
Fixes:
------
 1. Problem:    CQ69299 - Incorrect value for burned MAC is shown in OEM
                specific data query flow.

    Change:     Read MAC address from NVRAM and not from shmem, as it might
                include flex address.

    Introduced: Day 1.

    Relevance:  OEM specific data query flows.

 2. Problem:    Wrong FW version is returned in NCSI Get Version ID Command.

    Change:     Fix array read access.

    Introduced: 7.1.1.

    Relevance:  57xxx + NC-SI enabled.

 3. Problem:    CQ69348 - In MF ALLOWED mode, When VFs were FLRed the MFW might
                have sent an attention to the wrong PF.

    Change:     Read number of vfs from correct shmem field in this mf mode.

    Introduced: day 1.

    Relevance:  57xxx.

 4. Problem:    CQ69377 - Potential CRC mismatch to shadow image used to support
                latest NC-SI OEM commands.

    Change:     Fix CRC when writing content to that image.

    Introduced: 7.8.11.

    Relevance:  57xxx.

 5. Problem:    CQ69283, CQ69289 - DCBX synchronization problems when LFA is
                active.

    Change:     1. Don't decrement tx timer in hold state, in order to ACK all
                   DCBX messages before OS driver is loaded.
                2. Don't increment DCBX sequence number for each driver unload,
                   as it causes large increment upon driver probe sequence.

    Introduced: 7.4.2 (since LFA feature was active).

    Relevance:  57xxx.

 6. Problem:    Some NC-SI OEM commands handling is too long.

    Change:     Removed unnecessary NVRAM access in order to reduce handling
                time.

    Introduced: 7.8.11.

    Relevance:  57xxx.

 7. Problem:    CQ69349 - function might remain as disabled in MF ALLOWED mode,
                depending on the CLP configuration and link toggling flow.

    Change:     MFW will modify disabled bit in the shmem to meet DCC spec 1.9
                requirements only after first driver load is received, as an
                indication that CLP configuration can't arrive anymore.

    Introduced: 7.4.2.

    Relevance:  57xxx.

 8. Problem:    Incorrect stack-guard check in performed the beginning of the
                main loop.

    Change:     Remove it and count on the check performed in the scheduler.

    Introduced: T7.0.

    Relevance:  57xxx.

 9. Problem:    NC-SI OEM commands - accept configuration on first partition.

    Change:     Remove unnecessary conditioning on partation ID.

    Introduced: T7.8.11.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ69178 - In MF ALLOWED mode assign number of VFs only according
                to clp configuration, and ignore value of nvm cfg #91 which
                controls whether SRIOV is enabled.

 2. Request:    CQ68665 - Enhance MFW code to support writing the versioning
                info into I2C VPD NVRAM.
                Add parsing support for bundled MBA image.

Version 7.8.12 (May 22, 2013)
=============================
Fixes:
------
 1. Problem:    CQ68365 - Intermittent link issue when link speed is lower than
                10G due to Warpcore firmware issue, which was initially observed
                on KX.

    Change:     Reset the OS8 Tx fifo during link initialization, and link
                change as a work-around.

    Introduced: Day 1.

    Relevance:  578xx.

 2. Problem:    Incorrect values are returned in the new NCSI OEM commands.

    Change:     Fixed.

    Introduced: 7.8.11.

    Relevance:  57xxx.

 3. Problem:    Management passthrough packet originated by the BMC can be sent
                via several network ports, if channel is in corresponding state
                and BMC MAC matches channel filters.

    Change:     Enable BMC packet to be sent only to one network port (lowest
                channel which matches the filters).

    Introduced: day 1.

    Relevance:  57xxx.

 4. Problem:    CQ68816 - OEM specific low priority data is missing in BFS
                flows.

    Change:     Enable the workaround to disable this feature only upon last OS
                driver unload (and not every last driver unload).

    Introduced: 7.8.4 (when workaround to disable this feature upon last driver
                unload was added).

    Relevance:  OEM specific data query flows.

 5. Problem:    CQ69213 - OEM specific query data doesn't mark flex mode
                correctly.

    Change:     Mark whether flex addresses are enabled or not.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

Enhancements:
-------------
 1. Request:    CQ68908 - Add support for OEM card VPD update over SMBUS.

 2. Request:    CQ69144 - Add a support for SMBUS packet assembly.

Version 7.8.11 (May 06, 2013)
=============================
Fixes:
------
 1. Problem:    Memory overrun in NCSI flows after FW upgrade might cause
                several issues since upgrade and until cold boot.

    Change:     Upon FW upgrade set indication for a full initialization
                of NCSI.

    Introduced: Day one.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ67871  - support new NC-SI OEM commands.

 2. Request:    CQ69000  - Advertise expansion rom capabilities to two lowest
                functions on each port in MF_ALLOWED mode.

 3. Request:    CQ69015  - Fasten NVRAM write access by applying page size
                transactions instead of DWORD transactions used up to now.

 4. Request:    Restructure NC-SI code to reduce scratchpad size.

Version 7.8.10 (Apr 30, 2013)
=============================
Fixes:
------
 1. Problem:    CQ66903 - Specific active DAC cannot get link.

    Change:     Set firmware mode to 0x2 in case of any DAC type.

    Introduced: Day one.

    Relevance:  578xx-SFI.

 2. Problem:    CQ68401 - DCBX sequence number is increasing constantly when
                driver isn't loaded.

    Change:     Fix bad logic in that state.

    Introduced: Day one (relevant only since LFA, as before that DCBX
                negotiation occurred only when driver is loaded).

    Relevance:  57xxx.

 3. Problem:    CQ68445 - OEM specific data of link status shown is incorrect,
                due to DMAE alignment issues.

    Change:     Allocate 4 bytes for this field, as that's the alignment of
                DMAE HW.

    Introduced: Day one.

    Relevance:  OEM specific data query flows.

 4. Problem:    PCI configuration space includes different serial number per
                PF, which contradicts PCI-E spec.

    Change:     Use MAC addr of PF0 to generate a similar serial number for all
                PFs of the device.

    Introduced: Day one.

    Relevance:  57xxx.

 5. Problem:    CQ67925 - driver load might fail when host-BMC passthrough
                feature is enabled, and such traffic is really sent from the
                BMC during the load.

    Change:     Send traffic to host only after driver reaches to LOAD_DONE
                phase, and not after it only sent LOAD_REQ.

    Introduced: Day one.

    Relevance:  57xxx.

 6. Problem:    NC-SI AEN command and afex vic open advertised that driver is
                loaded while it's still not fully loaded.

    Change:     Advertise that driver is fully loaded only after LOAD_DONE is
                sent, and not after LOAD_REQ phase.

    Introduced: Day one.

    Relevance:  57xxx.

 7. Problem:    Disabling 20G link speed doesn't take effect after MFW first
                brought up the link in 20G.

    Change:     Actually disabling 20G link speed, and not leave configuration
                as default.

    Introduced: 7.8.0.

    Relevance:  57840-KR2.

 8. Problem:    Some NC-SI OEM commands were rejected unjustly if channel ID
                was equal to 0x1F.

    Change:     Allow commands that are addressed to the package according to
                spec.

    Introduced: Day 1.

    Relevance:  57xxx.

 9. Problem:    CQ67870, CQ68739 - PCIE link recoveries are observed by system
                BIOS upon reset.

    Change:     Adjust Rx signal detect to improve margin in Gen2 environments.

    Introduced: day 1.

    Relevance:  578xx - non Gen3.

Enhancements:
-------------
 1. Request:    CQ68664 - Add new PHY LED mode EXTPHY2 to set the link LED for
                100M/1G/10G through LED1 pin of the 8483x PHY.

Version 7.8.9 (Mar 21, 2013)
============================
Fixes:
------
 1. Problem:    CQ65957, CQ67345 - PCIe gen3 errors (phase 2 timeouts).

    Change:     New PCIe ucode (version #210) using mdio reads to determine DSC
                states instead of relying on GPIO pins while performing
                equalization.

    Introduced: day 1.

    Relevance:  57840 - PCIe-GEN3.

 2. Problem:    CQ66699 - PCI vendor ID advertised in OEM specific data query
                is all zeros.

    Change:     Rewrite PCI vendor ID as it was overwritten with zeros due to
                DMA alignment.

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

 3. Problem:    CQ67916 - Long KR2 link up time due to consecutive KR2 disable/
                enable recovery.

    Change:     After KR2 is disabled, wait at least 5 seconds before trying
                KR2 recovery, to provide enough time for the link to come up
                after KR2 is disabled.

    Introduced: Day one.

    Relevance:  57840-KR2.

 4. Problem:    CQ67879 - NCSI Get Version ID with channel id 0x1F causes FW to
                hang.

    Change:     NCSI Get Version ID with channel ID 0x1F will be rejected.

    Introduced: 7.0.14.

    Relevance:  57xxx, NCSI enabled.

 5. Problem:    CQ68300 - When SFP module EEPROM is accessed by OEM entity, the
                I2C may stop responding.

    Change:     Provide a way to read both sections a0/a2 of module EEPROM.

    Introduced: Day one.

    Relevance:  8726/8727/57800/57810-SFI.

 6. Problem:    CQ66252 - OEM specific function data query returned empty
                results.

    Change:     Fix logic to disable OEM specific data query only after last
                driver is unloaded.

    Introduced: 7.8.4/7.4.22.

    Relevance:  OEM specific data query flow.

Enhancements:
-------------
 1. Request:    CQ67301/CQ68591 - Add support for OEM card VPD/temperature
                notification.

Version 7.8.8 (Mar 05, 2013)
============================
Fixes:
------
 1. Problem:    MFW reset moves the NCSI FSM to initial state.

    Change:     Fix logic.

    Introduced: 7.8.7.

    Relevance:  57xxx.

 2. Problem:    CQ67809 - MCP dropped entirely DCC packets which included a
                TLV setting function bandwidth to 20G.

    Change:     Support this value as well.

    Introduced: day 1.

    Relevance:  57840-KR2.

 3. Problem:    CQ67930 - MCP hanged if extended shared nvm cfg image is in
                high offset in the nvram. Another exposure is that nvm cfg
                values from that image might not be loaded correctly to the
                shmem.

    Change:     Don't use selective nvm block when copying this image, as it
                is redundant and caused access outside of array boundaries.

    Introduced: T7.4.

    Relevance:  577xx.

 4. Problem:    CQ67779 - Fix NCSI rule to filter NETBIOS packets according to
                UDP + dst-port instead of UDP + src-port.

    Change:     Fix filtering rule.

    Introduced: 7.8.7.

    Relevance:  577xx.

 5. Problem:    Regression due to NC-SI set link changes caused LFA to always
                fail due to flow control mismatch.

    Change:     Fix population of FC parameter.

    Introduced: 7.8.7.

    Relevance:  577xx.

 6. Problem:    CQ67859 - Long KR2 link up time due to consecutive KR2
                enable/disable recovery.

    Change:     After KR2 is disabled, wait at least 5 seconds before trying
                KR2 recovery, to provide enough time for the link to come up
                after KR2 is disabled.

    Introduced: Day 1.

    Relevance:  57840-KR2.

 7. Problem:    CQ67441 - iSCSI boot scenario fails when there was not link
                flap avoidance in MF_MODE.

    Change:     Allow LFA in MF_MODE during iSCSI/FCOE boot scenario, where the
                driver passes new flag DRV_MSG_CODE_LOAD_REQ_FORCE_LFA in the
                param field for the LOAD_REQ command.

    Introduced: 7.8.3 (where LFA was disabled in MF_MODE).

    Relevance:  All.

 8. Problem:    Potential PCI gen3 link problems.

    Change:     New PCIe ucode (version #153) which separates out the link
                tuning process from the equalization process.

    Introduced: day 1.

    Relevance:  57840 - PCIe-GEN3.

Version 7.8.7 (Feb 14, 2013)
============================
Fixes:
------
 1. Problem:    CQ66402 - EEE is not fully enabled for BCM84834.

    Change:     Resolve EEE AN for BCM84834 as well.

    Introduced: Day 1.

    Relevance:  EEE in BCM84834.

 2. Problem:    CQ67345 - PCIe Gen 3 Timeout due to link hold-off release
                before microcode is ready.

    Change:     Wait until microcode is ready (for up to 15ms) before releasing
                link hold-off.

    Introduced: day 1.

    Relevance:  57840 - PCIe-GEN3.

 3. Problem:    In SFP detection module, when 1G device is detected, an error
                for wrong forced link speed is printed, regardless of
                requested link speed.

    Change:     Condition the warning print for wrong forced link speed
                only if the previous doesn't match the current.

    Introduced: 7.4.12.

    Relevance:  578xx - SFP+.

 4. Problem:    CQ66853 - statistics aren't always advertised to the switch
                in AFEX mode.

    Change:     Advertise that statistics requests are supported in VIC OPEN
                even if no driver is loaded. If request is received before any
                driver is loaded, respond with zeros. By that, when driver will
                be loaded and link will not toggle, those requests will be sent
                from the switch.

    Introduced: day 1.

    Relevance:  afex enabled boards.

 5. Problem:    NCSI code sets too many rules in order to filter NETBIOS packets
                toward the BMC/Host.

    Change:     Filtering only UDP and not TCP, only dst-port and not src-port.

    Introduced: day 1.

    Relevance:  57xxx, NCSI enabled.

 6. Problem:    MCP resets the MACs upon last driver unload on the chip, and it
                might cut packet in the middle towards the MCP.

    Change:     Don't reset MACs in this flow. In 578xx, reset the MSTAT in that
                flow.

    Introduced: day 1.

    Relevance:  57xxx.

 7. Problem:    Image loader completion was based on BUSY bit rather than on
                completion value. This change has no real effect right now, but
                it comes to avoid problems, in case the BUSY bit behavior of the
                image-loader will change in the future.

    Change:     Change completion detection method to comparing the CADDR with
                the CDATA of the image-loader.

    Introduced: day 1.

    Relevance:  578xx.

 8. Problem:    FC parameter in the NCSI set link command doesn't adapt
                correctly.

    Change:     Store the FC paramrter immediately as arrives, and not during
                link update.

    Introduced: day 1.

    Relevance:  57xxx.

Enhancements:
-------------
 1. Request:    CQ66891 - Add support to IFFE configuration options.

 2. Request:    CQ67001 - Support new driver HSI commands to get USR_BLK image
                size and offset in NVRAM.

 3. Request:    CQ67779 - Retain NCSI set link command values after driver
                unload.

Version 7.8.6 (Dec 20, 2012)
============================
Fixes:
------
 1. Problem:    CQ65957 - Running S4 Stress/Reboot Test Scenario Results in
                System Halt at POST for PCI-e Training Error.

    Change:     Refine PERST# attention enabling to be as early as possible.

    Introduced: day 1.

    Relevance:  57840 - PCIe-GEN3.

 2. Problem:    IGU configuration of VFs might be wrong in SF mode.

    Change:     Fix logic.

    Introduced: 7.8.5 (regression due to fix of CQ66353).

    Relevance:  SRIOV enabled.

 3. Problem:    CQ67021 - OEM specific data query flows might cause NMI due to
                DMA transactions performed from a function which didn't
                allocate this host memory.

    Change:     Don't perform DMA transactions from first enabled function
                found, but from the one allocated this host memory if
                possible (otherwise, don't perform the transaction).

    Introduced: day 1.

    Relevance:  OEM specific data query flows.

Enhancements:
-------------
 1. Request:    CQ66891 - Add to "nvm cfg" IFFE configuration options.

 2. Request:    CQ66689 - Add support for RJ45 SFP module.

 3. Request:    CQ64735, CQ67078  - Control SFP+ tap values through nvm
                configuration.

Version 7.8.5 (Dec 09, 2012)
============================
Fixes:
------
 1. Problem:    CQ66320 - NC-SI values reported in OEM specific data query are
                wrong.

    Change:     Adjust NC-SI related values as required (fix in 7.8.4 wasn't
                sufficient).

    Introduced: day 1.

    Relevance:  OEM specific data query flow.

 2. Problem:    After PMF migration when KR2 is enabled, a link flap would occur
                since the KR work-around indication was not saved in shmem.

    Change:     Save KR2 work-around parameter in shmem, and synchronize it like
                rest of link parameters with all PFs.

    Introduced: T7.8.

    Relevance:  57840-KR2.

 3. Problem:    CQ66353 - MFW might advertise SRIOV capability to several PFs
                and not to others. Some OSs mishandle that.

    Change:     Advertise SRIOV in PCI configuration space to all functions
                in case it is enabled to any of the functions.

    Introduced: T7.4.

Enhancements:
-------------
 1. Request:    CQ66789 - Disable iSCSI in the licensing published, if marked
                so in nvm configuration (nvm cfg #201).

Version 7.8.4 (Nov 26, 2012)
============================
Fixes:
------
 1. Problem:    CQ66304 - NC-SI OEM get mac address command asking for virtual
                mac used to return permanent mac address in case virtual mac
                isn't set.

    Change:     Return zeros as required in such a case.

    Introduced: Day 1.

    Relevance:  OEM specific NC-SI flow.

 2. Problem:    CQ66257 - WoL MAC address filters aren't adjusted immediately
                upon NCSI OEM specific set mac address command. Therefore, if
                driver will not be loaded, the WoL filters will be adjusted
                only upon next reboot.

    Change:     Modify WoL filters immediately upon this command, in case
                driver isn't loaded.

    Introduced: Day 1.

    Relevance:  OEM specific NC-SI flow.

 3. Problem:    CQ66320 - NC-SI values reported in OEM specific data query are
                wrong.

    Change:     Adjust NC-SI related values as required.

    Introduced: day 1.

    Relevance:  OEM specific data query flow.

 4. Problem:    KR2 - Possible link flap after link up due to frame errors.

    Change:     Adjust KR2 register configuration fix this problem, so the
                frame error detection band-aid is now removed.

    Introduced: 7.8.3.

    Relevance:  57840-KR2.

 5. Problem:    CQ66407 - No link against certain 10G switches in KR2 mode.
                CQ66381 - No link against certain 1G switches in KR2 mode.

    Change:     Fix KR2 register setting to fit these modes as well. Note that
                in case of 8073 LP, a 10G fallback is still required.

    Introduced: T7.8.

    Relevance:  57840-KR2.

 6. Problem:    CQ66058 - No link after reboot on a 4 port device. This was
                caused due to passing structure from incorrect pointer to the
                common init procedure.

    Change:     Pass the appropriate link structure during the common init
                process.

    Introduced: 7.4.1.

    Relevance:  57840 4 port device.

 7. Problem:    CQ66611 - nvm option 86: "Prevent PCIe L1-entry" is ignored.

    Change:     Disable entry for L1 in case this nvram option is set.

    Introduced: T7.0.

    Relevance:  All.

 8. Problem:    PCIe registers 0x383c and 0x3804 are not set correctly.

    Change:     Restore phy_ctl registers to default settings and allow
                NVM debug capability to change them.

    Introduced: 7.8.3.

    Relevance:  57840.

 9. Problem:    CQ66146 - DCBX sequence counters didn't increase properly when
                driver isn't loaded.

    Change:     Increase counters upon DCBX change when driver isn't loaded.

    Introduced: day 1.

10. Problem:    CQ66442 - NMI might occur after driver is removed (rmmod) when
                IOMMU is enabled and OEM specific data query flow is active.

    Change:     Disable OEM specific data query flow upon last driver unload
                (and if this change isn't disabled through nvm cfg).

    Introduced: day 1.

    Relevance:  OEM specific data query flow.

Enhancements:
-------------
 1. Request:    enable hardware to automatically cycle through all gen3 presets
                for Compliance (CBB) tests.

 2. Request:    CQ66449 - Enable FLR on all functions, when FLR is enabled on
                any function.

 3. Request:    CQ66448 - Update dependency list field in SRIOV capability in
                PCI config space with the PF number.

Version 7.8.3 (Nov 08, 2012)
============================
Fixes:
------
 1. Problem:    Second KR2 port fails to link against (non-8073) 10G switch.

    Change:     Apply work-around for second port.

    Introduced: 7.8.2.

    Relevance:  KR2.

 2. Problem:    LFA feature is disabled.

    Change:     Init lfa host address correctly.

    Introduced: 7.8.2.

 3. Problem:    CQ63652 - Wrong notification for first loaded function in MF
                allowed mode might occur, if link wasn't flapped since last
                handshake.

    Change:     Disable LFA feature in MF allowed mode.

    Introduced: MFW 7.4.2.

 4. Problem:    On boards with external PHY which EMAC base used for PHY access
                is different than the EMAC base used for the internal PHY, the
                EMAC mode may not be set to CL45 correctly.

    Change:     Set the external PHY's EMAC mode in case it is different than
                the internal PHY.

    Introduced: Day 1.

    Relevance:  External PHY.

 5. Problem:    CQ65641 - No 1G link against certain switches.

    Change:     Restore CL72 misc control register to default value rather than
                0.

    Introduced: T7.2.

    Relevance:  578xx-KR.

 6. Problem:    CQ65784 - No link against 1G switch in KR2 mode.

    Change:     Check 1G link as well in KR2 mode.

    Introduced: 7.8.0.

    Relevance:  57840.

 7. Problem:    Several KR registers were not set correctly back to default
                after loopback test.

    Change:     Set those global registers over the global WC lane (zero) rather
                than the current lane.

    Introduced: 7.4.2.

    Relevance:  57840 - KR/KR2.

 8. Problem:    CQ65773 - No link after PXE boot in link flap avoidance case.

    Change:     Set the appropriate default PHY DEVAD even if LFA kicks in.

    Introduced: 7.4.2.

    Relevance:  57712.

 9. Problem:    CQ65957 - Potential PCI-e errors, due to incorrect handling of
                PERST assertion, while in different MFW stages.

    Change:     Fixed PERST# handling in BC2.

    Introduced: T7.5.

    Relevance:  57840.

10. Problem:    when interrupts are disabled, it is possible to miss PERST#
                assertion/de-assertion. Need to detect this condition for
                configuration purposes.

    Change:     Added logic to identify this condition before interrupts are
                re-enabled, change value of reference perst status accordingly
                and apply the necessary configuration.

    Introduced: day 1.

    Relevance:  578xx.

11. Problem:    CQ66227 - Option buffer returns wrong value for maximum VM Qs
                per PF.

    Change:     Fix logic according to correct mf mode.

    Introduced: day 1.

12. Problem:    CQ66228 - Option buffer link speed returned is the maximum
                speed capable by the device, and not actual link speed.

    Change:     Return value of actual link speed, 0 if link is down.

    Introduced: day 1.

13. Problem:    CQ66284 - DXGXS fails to pass traffic.

    Change:     Set XMAC mode to XLGMII only in KR2 and not in DXGXS mode.

    Introduced: 7.8.0.

    Relevance:  57840-DXGXS.

14. Problem:    CQ66013, CQ66026, CQ66077 - Unallowed DMA transaction triggered
                by the MFW might cause NMI or system crash.

    Change:     Change DMA transaction opcode to GRC2PCI.

    Introduced: T7.2.

    Relevance:  OEM specific data query flow.

15. Problem:    CQ65780 - Link flap on KR2 against 20G switch.
                CQ66364 - Link delay on KR2 connected to Pass through.
                CQ66079 - KR2 cannot link against various 10G switches.
                CQ66331 - Same as above.
                CQ66407 - Same as above.
                CQ66381 - Same as above.

    Change:     1. Add 10G fallback to KR2 devices, in case link partner doesn't
                   set NP bit in the base page, or it only advertises 1G-KX.
                   In that case, KR2 configuration is removed, and AN will be
                   restarted.
                2. Add KR2 recovery, in case port is in 10G-fallback mode, and
                   sigdet is cleared, BP is cleared or LP advertises NP in BP.
                3. Add Frame Error Detection when link is up, and error frames
                   are seen, restart AN.

    Introduced: T7.8.

    Relevance:  57840-KR2.

Enhancements:
-------------
 1. Request:    Move NC-SI commands handling to SWIM.

Version 7.8.2 (Oct 10, 2012)
============================
Fixes:
------
 1. Problem:    CQ65910 - KR2 fails to link against (non-8073) 10G switch.

    Change:     Apply KR2 work-around in case CL73 fsm is stuck waiting for
                next-page on a specific lane, and not on both lanes of the port.

    Introduced: T7.5.

    Relevance:  KR2.

 2. Problem:    CQ65845, CQ65927, CQ65935, CQ65941, CQ65945, CQ65886 - PCI
                enumeration and IGU configuration can get wrong after reboot
                due to wrong logic calculating reset type.

    Change:     Identify reset type before initializing registers which affect
                this decision.

    Introduced: 7.8.0.

Version 7.8.1 (Oct 04, 2012)
============================
Fixes:
------
 1. Problem:    CQ65645 - Possible incorrect link speed provision following
                rapid link speed change.

    Change:     Clear link speed mask after each link change, and not only after
                link down.

    Introduced: Day 1.

    Relevance:  Autoneg.

 2. Problem:    CQ65715 - NC-SI FCoE get statistics request didn't work on
                boards with specific PCI vendor ID.

    Change:     Enable this functionality on all PCI vendor IDs.

    Introduced: MFW 7.4.7.

 3. Problem:    CQ65727 - KR2 fails to link against (non-8073) 10G switch.

    Change:     Apply KR2 work-around in case CL73 fsm is stuck waiting for
                next-page.

    Introduced: T7.5.

    Relevance:  KR2.

 4. Problem:    Option buffer returns only 20 bytes of the product id.

    Change:     Increase field size to 40 bytes.

    Introduced: 7.2.3.

 5. Problem:    CQ65806 - MFW might hang during driver load if SRIOV values in
                nvram aren't zero, and number of VFs required for the path
                exceed the maximum number allowed.

    Change:     1. Run extendChildVfs only if SRIOV is enabled.
                2. Remove assert from code.
                3. Don't overwrite shmem value of number of vfs if not going to
                   program pci accordingly.

    Introduced: 7.4.18, only after mcp is reset due to ediag flows.

Enhancements:
-------------
 1. Request:    Add support for NVM "auto mode" in case of 578xx B0 and above.

Version 7.8.0 (Sep 16, 2012)
============================
Fixes:
------
 1. Problem:    VF disable in VF FLR flow wasn't sent to driver if MFW already
                waited for ack from driver for another VF on the same PF.

    Change:     Send this VF disable to driver upon ack for the other VF.

    Introduced: 7.4.13.

    Relevance:  57xxx, SRIOV enabled.

 2. Problem:    When SFP+ module is plugged in after driver is already loaded,
                it may not be recognized.

    Change:     Allow SFP module recognition time of up to 300ms, without
                resetting the module power in the middle.

    Relevance:  578xx-SFP.

    Introduced: 7.4.1.

 3. Problem:    CQ65419 - When EEE enabled boards are connected back-to-back
                LLDP messages are sent consecutively from side to side, causing
                MFW to malfunction (frequent SWIM replacement etc.).

    Change:     Change LLDP message with EEE TLV only if EEE values received are
                changed.

    Relevance:  578xx, EEE.

    Introduced: 7.4.1.

 4. Problem:    CQ65475 - LPI keeps on advancing when link speed is one
                for which EEE is inactive.

    Change:     Enable LPI and claim EEE is active only if EEE was negotiated
                for actual link speed.

    Introduced: 7.4.12.

    Relevance:  578xx, EEE.

 5. Problem:    CQ65047 - Short VIC packets might be dropped before parsed by
                the MFW.

    Change:     Consider afex header size in calculation of minimal packet
                size.

    Introduced: day 1.

    Relevance:  57xxx, afex mode.

 6. Problem:    CQ65396 - Disabling pf while SRIOV is active might cause NMI.

    Change:     Perform vf unpretend after performing vf access when receiving
                vf disable ack from the driver.

    Introduced: 7.4.13.

    Relevance:  57xxx, sriov enabled.

 7. Problem:    When device in KR2 mode link with BCM8073, and link partner
                initiate autoneg, link is not recovered.

    Change:     In this mode, when link goes down, and KR2 work-around is set,
                re-advertise 20G speed and restart autoneg. This fix also covers
                scenario where a 8073 link partner is swapped with true KR2 link
                partner.

    Introduced: T7.5.

    Relevance:  57840-KR2.

 8. Problem:    CQ65221, CQ65509 - DCC might mistakenly reset its state machine
                as if there was a link flap without a real flap, causing state
                machine to drop all DCC packets. For example, such a scenario
                can happen when PFC is configured after DCBX negotiation.

    Change:     Assume there was a link flap only according to change in
                LINK_UP bit in link_status field in port mailbox.

    Introduced: day 1.

    Relevance:  57xxx, MF ALLOWED mode.

 9. Problem:    MFW might notify drivers about VFs which were FLRed, without
                notifying FW through ramrod about them.

    Change:     Hold one variable for all VFs through the handle_flr sequence.

    Introduced: day 1.

    Relevance:  57xxx, SRIOV enabled.

10. Problem:    MFW failed to clear shmem bits indicating which VFs are pending
                for driver FLR completion during function unload process.
                Hence, bogus FLR flows were initiated on those VFs once the
                function was reloaded.

    Change:     Clear those shmem bits in driver load sequence.

    Introduced: day 1.

    Relevance:  57xxx, SRIOV enabled.

11. Problem:    CQ65585 - When in NPAR with SR-IOV enabled on many functions,
                for certain VF number combinations, functions on the second
                path will fail to load.

    Change:     The VF clearing logic for the second path was using higher VF
                IDs instead of relative IDs.

    Introduced: 7.4.18.

    Relevance:  57xxx, SRIOV enabled in NPAR mode.

Enhancements:
-------------
 1. Request:    CQ63733/CQ63815 - Support new DIDs for 57840 device.

 2. Request:    Add PHY FW upgrade for BCM84834.

 3. Request:    Add support for 20G-KR2.

 4. Request:    Add support for PCI-GEN3.

 5. Request:    Limit MSIX vectors advertised in PCI config space according to
                new nvm cfg value, without changing relevant IGU configuration.

 6. Request:    Add support for HW_SET image requests upon PERST assertion and
                de-assertion.

 7. Request:    CQ65586 - Apply PCIe Tx Analog Defaults even in 57840 B1.

Version 7.4.14 (Aug 30, 2012)
=============================
Fixes:
------
 1. Problem:    CQ65380 - MFW access invalid NIG register.

    Change:     Avoid accessing this NIG register.

    Introduced: 7.4.13.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    New Warpcore microcode (ver: D10B; checksum = 0x7FB7).
                Improved cdr stability at the time equalization
                adaptation occurs.

Version 7.4.13 (Aug 28, 2012)
=============================
Fixes:
------
 1. Problem:    Link sometimes continuously flapped when EEE was configured.

    Change:     Remove EEE support for 84833 phys with fw version 0x1f81.

    Introduced: 7.4.11.

    Relevance:  578xx, EEE.

 2. Problem:    VF FLR flow doesn't function well if receiving from OS another
                FLR while driver didn't finish handling former FLR command
                on that VF.

    Change:     1. When receiving FLR request from OS and former request still
                   hasn't completed, clear FLR_IN_PROGRESS bit and FLR
                   indication in PGLUE_B.
                2. Enable VF in PGLUE_B when receiving ack from the driver.

    Introduced: day 1.

    Relevance:  57xxx, SRIOV enabled.

 3. Problem:    CQ65325 - on 4-port devices, some functions do not show LPI
                assertions in their statistics.

    Change:     Remove the disablement of LPI assertions via a register common
                to both ports on a single path.

    Introduced: 7.4.11.

    Relevance:  578xx, EEE.

 4. Problem:    CQ64963 - MCP way get halted during OOB WOL.

    Change:     Pass valid arguments for reading PHY temperature.

    Introduced: 7.4.7.

    Relevance:  578xx + 84833.

 5. Problem:    CQ64799 - NPAR OOB WOL failed to wake up system.

    Change:     Avoid checking XGXS status when setting PF MAC register.

    Introduced: Day 1.

    Relevance:  578xx NPAR.

 6. Problem:    No link on 578xx 10G-baseT boards. This problem is introduced
                only now, due to changes in 20G link indication which indirectly
                affects detecting this type of link.

    Change:     Apply correct supported mode to the XFI interface of the
                Warpcore.

    Introduced: No.

    Relevance:  578xx.

Version 7.4.12 (Aug 23, 2012)
=============================
Fixes:
------
 1. Problem:    LFA may not happen since EEE is always set.

    Change:     Set EEE parameter only if it is not disabled in nvram.

    Introduced: 7.4.11.

 2. Problem:    CQ64472 - Intermittent KR link flaps.

    Change:     Upgrade Warpcore microcode to D10b with the fix.

    Introduced: T7.0.

    Relevance:  578xx-KR.

 3. Problem:    CQ64799 - WoL is not functional on higher functions in MF mode.

    Change:     The MAC addresses of the higher functions was lost when the link
                was re-configured on PERST assertion. There is really no need to
                re-configure the link on PERST assertion if the drivers were
                unloaded, so the link is re-configured only on unprepared power
                down.

    Introduced: 7.4.1.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ64686 - boards with 54618se external phys now use native eee
                instead of auto-grEEEn.

 2. Request:    New Warpcore microcode (ver: D10B; checksum = 0xEEB7).
                Updated CL72 equations to address gain saturation on lossy
                channels.
                Improved transient state protection on polling variables.

Version 7.4.11 (Aug 16, 2012)
=============================
Fixes:
------
 1. Problem:    CQ65074 - Possible no link when LFA kicks in after pre-boot
                driver initialized the link, since preboot drivers do not
                work in interrupt mode, hence do not initialize it.

    Change:     If LFA terms are met, initialize the necessary interrupt
                registers in the PHYs.

    Introduced: 7.4.2.

    Relevance:  57712 + 8073/8727/848x3.
                578xx + 54618se/848x3.

 2. Problem:    Device may not be enumerate on PCI after POR.

    Change:     Disable "Missed PERST# assertion" detection as a temporary fix.

    Introduced: 7.4.9.

Enhancements:
-------------
 1. Request:    Add support for EEE.

 2. Request:    Add EEE to LFA conditions.

Version 7.4.10 (Aug 15, 2012)
=============================
Fixes:
------
 1. Problem:    CQ65018 - VFs are enumerated on functions with iSCSI offload
                enabled.

    Change:     Disable SRIOV for all storage enabled functions (FCoE or iSCSI
                offloads are enabled).

    Introduced: 7.4.1.

 2. Problem:    CQ64799, CQ64963 - WoL is not functional if not enabled in the
                nvram, even if set by the driver.

    Change:     As part of the removal of the HW hard reset on unprepared power
                down, the state of the driver WoL request was erased on power
                down - it should be preserved to honor the driver WoL request.

    Introduced: 7.4.1.

    Relevance:  578xx.

 3. Problem:    Default signal detect threshold for PCIe SERDES in Gen1 mode
                is not sufficient in all corners.

    Change:     Change the signal detect threshold for SERDES to work in all
                PVT corners.

    Relevance:  578xx.

 4. Problem:    CQ64858 - PCI ARI pointers aren't pointing to next valid PCI
                function if MFW hides functions at run time (due to CLP inputs
                or any other logic).

    Change:     Update ARI values when hiding PCI functions.

 5. Problem:    Link flap avoidance feature might not work on BE architecture.

    Change:     Fix Endianity in the LFA structure in the scratchpad.

 6. Problem:    CQ64942 - DCC doesn't converge because link isn't flapped after
                clp exit, causing remote side not to send DCC first command.

    Change:     Disable LFA for first link flap after clp exit with DCC
                parameters.

    Introduced: 7.4.2.

    Relevance:  MF allowed mode.

 7. Problem:    Checking for missed PERST# assertion using MDIO access may
                collide with PCI microcode.

    Change:     Set and check PCI_HOLDOFF success which means that PCI link went
                down. In addition add 20ms after PCI link is established to
                avoid false condition in this case.

    Introduced: 7.4.8.

    Relevance:  578xx.

 8. Problem:    CQ56737 - TX_DIS signal causes current leakage issue on the
                module 3.3V power rail (V_3P3_SFP2) when no module is plugged.

    Change:     Keep TX laser always enabled, should be disabled in case of
                fault to get valid module.

    Introduced: 1.70.00.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    CQ64500 - Don't preserve CLP configuration upon shut down.
                To support this feature defined a time out of 50 milliseconds:
                if main power is down for longer, treat it as POR and clear CLP
                configuration upon next mcp reset.

Version 7.4.9 (Aug 01, 2012)
============================
Fixes:
------
 1. Problem:    CQ64136 - MFW doesn't take link ownership after UNDI driver
                unload, causing management and other MCP related traffic to
                be none functional.

    Change:     Define new bit marking for MFW not to take link ownership
                instead of current bit which is always set by UNDI driver.
                The new bit will be set by OS drivers upon UNDI unload flows
                (and can also be set by UNDI driver when required).

    Introduced: 7.4.4.

 2. Problem:    CQ64725 - mcp releases all driver leader locks upon reset,
                ruining parity recovery process which assumes locks will
                remain taken after mcp reset.

    Change:     Release all driver locks upon mcp reset besides both leader
                locks (one per path).

    Introduced: 7.4.7.

 3. Problem:    MFW remains in VIC reduced mode and rejects some VIC messages
                even after OS driver with afex support is loaded in link flap
                avoidance scenarios.

    Change:     Clear reduced mode flag after driver loaded with afex support.

    Introduced: 7.4.2 (when LFA feature was added).

 4. Problem:    CQ64955 - Bad IGU configuration if host changed number of MSIX
                vectors per VF.

    Change:     Fix bug in VF pretend mechanism writing number of vectors per
                VF in PCI config space.

    Introduced: 7.4.1 (when new resource allocation was added).

Version 7.4.8 (Jul 17, 2012)
============================
Fixes:
------
 1. Problem:    CQ64404, CQ64578 - If MFW missed link flap (mostly when UNDI
                driver is loaded), recovery wasn't robust enough, and it was
                reflected in DCBX counters handling and VIC session recovery.

    Change:     If received DCBX with reset counters, assume link was toggled
                and simulate link flap to DCBX and VIC FSMs.

    Introduced: day 1 (probably exposed now due to LFA feature).

 2. Problem:    When ASPM is enabled, MFW may stop responding due to interrupt
                storm. This was caused since the check for missed PERST#
                assertion was based on LTSSM states which do change, mainly
                when ASPM is active.

    Change:     Look for missed PERST# assertion by checking if the PCIe
                work-arounds have been applied yet or not.

    Introduced: 7.4.1.

    Relevance:  57840.

Enhancements:
-------------
 1. Request:    Remove unnecessary debug prints.

Version 7.4.7 (Jul 11, 2012)
============================
Fixes:
------
 1. Problem:    CQ63990 - MFW fails to take PHY lock for common init of the
                link, and thus not enabling validity map, causing the driver
                above to get stuck. Not being able to acquire the lock at this
                stage, indicate the upper layer driver took the PHY lock, and
                only then been waiting for the validity map update.

    Change:     Unlock all drivers HW locks when BC1 starts to run, and
                immediately take the PHY lock.

    Introduced: Seems to be a timing issue coupled with T7.4 UEFI drivers.

 2. Problem:    CQ64313 - NC-SI packets might be freed twice, hence not
                processed correctly and might cause bad logic in MFW network
                manager.
                Problem is exposed if receiving NC-SI pass-thru packet on
                higher path/port, immediately after receiving LLDP/VIC/DCC
                packet on a lower path/port.

    Change:     Clear NET_EVENTS_COMPLETE_MASK from net_events when releasing
                a matching packet.

    Introduced: T6.4.

 3. Problem:    CQ64140 (DCBX) - Number of supported traffic classes are not
                advertised correctly in outgoing DCBX packet.

    Change:     Advertise that adapter supports 2 TCs for E2 and 3 TCs
                for E3.

    Introduced: T7.2.

 4. Problem:    DCBX source MAC might be changed during the DCBX session. It
                can cause switch to close the port due to violation.

    Change:     1. Remove DCBX MAC update upon clp exit.
                2. Add MAC update when link goes up.

    Introduced: day 1.

 5. Problem:    CQ64173  - MFW might hide functions which shouldn't be hidden.

    Change:     Read link parameters from NVRAM to shmem before deciding whether
                to mark port as SF mode according to this parameter.

    Introduced: MFW 7.4.1.

Enhancements:
-------------
 1. Request:    Update OEM data types per vendor suggestion (1.3).

 2. Request:    Read external PHY temperature only when supported by PHY.

 3. Request:    Initialize DMA thread only when supported by OEM, and load DMA
                SWIM only when DMA operation is actually required. This will
                improve the MCP CPU utilization on these scenarios by not
                wasting cycles for practically doing nothing.

Version 7.4.6 (Jun 26, 2012)
============================
Fixes:
------
 1. Problem:    CQ64106 - MFW assert upon vf flr on path 1.

    Change:     Assert that vf number is in correct range according to the
                path, and not hard coded lower than 64.

    Introduced: Day 1.

    Relevance:  57xxx, SRIOV enabled.

 2. Problem:    CQ64172 - IGU configuration might be wrong in SF mode, even
                causing some functions to have zero msix vectors. This will
                occur only in 4 port mode, when SRIOV is enabled, and number
                of VFs requested exceeds the maximum of 64 VFs per path.

    Change:     Retain value inserted to shmem after calculating it, and don't
                overwrite the value in load_pci_config() function.

    Introduced: 7.4.2.

    Relevance:  57xxx, 4 port mode, SF mode, SRIOV enabled.

 3. Problem:    CQ63990 - MFW fails to take PHY lock for common init of the
                link, and thus not enabling validity map, causing the driver
                above to get stuck. Not being able to acquire the lock at this
                stage, indicate the upper layer driver took the PHY lock, and
                only then been waiting for the validity map update.
                Duplicated CQs: CQ64136, CQ63936.

    Change:     Take the PHY lock in the beginning of MFW1, right after MCP
                starts to run in favor of the elink common init process.

    Introduced: 7.4.2. Timing related.

 4. Problem:    MCP waits for HW lock for very long time before giving up,
                instead of giving up after the time required as input to the
                hw_lock() function.

    Change:     Don't assume that when going to sleep, the sleep time is as
                asked (due to scheduler), but calculate accurate sleep time
                internally, after waking up.

    Introduced: T7.2 (together with MFW multi-threaded feature).

 5. Problem:    CQ64062: Response to SFP+ module verification command may be
                delayed by the maximum PHY locking time due to dead lock
                following execution of another link command.

    Change:     Execute the SFP+ module verification command from the MISC
                thread rather than the elink thread since it doesn't require PHY
                lock. This will prevent answering any other driver's commands
                until the module verification response completes.

    Introduced: T7.2.

    Relevance:  SFP+ devices.

Enhancements:
-------------
 1. Request:    CQ64131 - MFW to copy new per function nvm cfg fields for
                "pause on host ring" for npar and afex mf modes from the nvm to
                the shmem.
 2  Request:    CQ58949: PHY 84833, add temperature reading, temperature used
                for BMC over OCSD_protocol.

    Relevance:  578xx.

Version 7.4.5 (Jun 21, 2012)
============================
Fixes:
------
 1. Problem:    CQ63780 - 57811 in MF mode exposes only 1 function instead
                of 4.

    Change:     Remove wrong static assignment which corrupted internal MCP
                value of num paths supported.

    Introduced: 7.2.50.

    Relevance:  57811 in MF mode.

 2. Problem:    CQ64099 - Changing to NPAR mode in CCM requires two reboots to
                take effect instead of one.

    Change:     Write shmem value reflecting NVRAM value of MF mode before
                calculating required mf mode in init sequence.

    Introduced: 7.4.1.

    Relevance:  57xxx.

 3. Problem:    CQ63708 - First DCBX packet is dropped after driver was
                unloaded and link flap was avoided.

    Change:     Don't clear DCBX sequence and ack numbers upon driver unload
                if link wasn't flapped.

    Introduced: 7.4.2.

    Relevance:  57xxx.

 4. Problem:    First DCBX packet sent after driver was loaded and link flap
                avoided might include wrong sequence number.

    Change:     Don't clear tx sequence number if link wasn't flapped.

    Introduced: 7.4.2.

    Relevance:  57xxx.

 5. Problem:    DCBX packets might not be sent after last driver was unloaded
                and link wasn't flapped, causing TTL time out in remote side.

    Change:     ACK all DCBX Rx packets in this case.

    Introduced: 7.4.2.

    Relevance:  57xxx.

Version 7.4.4 (Jun 18, 2012)
============================
Fixes:
------
 1. Problem:    SRIOV capability is not advertised by MFW in SF mode even when
                needed.

    Change:     Fix logics in get_pf_resources() which cleared shmem value of
                number of vfs in SF mode even when not needed.

    Introduced: 7.4.3.

    Relevance:  57xxx.

 2. Problem:    CQ63963, CQ63740 - FCoE packets are transmitted with L2 MAC
                instead of FCoE MACs.

    Change:     Don't configure FCoE MACs according to L2 MAC upon clp exit.

    Introduced: 7.4.3.

    Relevance:  57xxx.

 3. Problem:    IGU configuration is wrong in NPAR mode.

    Change:     Don't re-calculate and re-configure IGU at clp exit, unless MF
                mode is MF_ALLOWED.

    Introduced: 7.4.3.

    Relevance:  57xxx.

 4. Problem:    CQ63652 - In DCC mode, when no driver is up, MFW advertises
                support only in link notification TLV, and not in link
                disable/enable and dynamic bandwidth allocation tlvs
                (which are mandatory) as well.

    Change:     Advertise support in all 3 mandatory TLVs even when no driver
                is up.

    Introduced: Day 1.

    Relevance:  57xxx, MF allowed mode.

 5. Problem:    CQ63755 - Driver crash after load as result of LFA logic.

    Change:     1. Reset the link on unexpected reset.
                2. Clear LFA structure on every reset type, and not just POR.
                3. Do not reset or init link during pre-boot activities, based
                upon DRV_MSG_CODE_UNLOAD_NON_D3_POWER flag.
                4. Reset the NIG upon reset (expect mcp reset).
                5. Remove setting NIG_REG_LLH0_BRB1_MCP_MASK, which was required
                for old drivers (5771x).

    Introduced: 7.4.2.

Enhancements:
-------------
 1. Request:    CQ63749 - Revert Warpcore microcode from D10A to D109.

    Relevance:  578xx.

 2. Request:    Add support to MFW version with 4 digits:
                Major.Minor.Build.Drop.

    Relevance:  57712, 578xx.

Version 7.4.3 (Jun 13, 2012)
============================
Fixes:
------
 1. Problem:    CQ63572 - driver fails to load due to wrong resource allocation
                by the MFW. This bug occurs when CLP writes VFs values to shmem
                even though SRIOV option is disabled in NVRAM.

    Change:     Check SRIOV enabled bit when reading those values from shmem
                upon clp exit.

    Introduced: 7.4.1 (when new resource allocation was added).

    Relevance:  57xxx.

 2. Problem:    CQ63780 - MFW didn't overwrite values in PCI config space upon
                change due to CLP exit. Relevant values are msix vectors and
                number of vfs.

    Change:     Upon clp exit, re-calculate msix vectors and number of vfs and
                re-advertise those values in PCI config space.

    Introduced: 7.4.1 (when new resource allocation was added).

    Relevance:  57xxx.

 3. Problem:    CQ63750, CQ63890 - IGU configuration might be wrong after clp
                exit arrives.

    Change:     Upon clp exit, re-calculate msix vectors and number of vfs and
                configure IGU accordingly.

    Introduced: 7.4.1 (when new resource allocation was added).

    Relevance:  57xxx.

 4. Problem:    Driver failed to probe in AFEX mode, as MFW mistakenly assumed
                functions are hidden while performing the resource allocation
                calculation.

    Change:     Unhide relevant functions before performing the calculation.

    Introduced: 7.4.1 (when new resource allocation was added).

    Relevance:  57xxx, afex mode enabled.

 5. Problem:    CQ63251 - In AFEX mode, stats request was sent to drivers even
                if reduced mode is set by preboot driver, causing this request
                not to be responded to remote side.

    Change:     As UNDI might load without unloading all drivers in all ports,
                check if reduced mode is set in any of the ports. If so, reject
                stats request from remote side without forwarding it to the
                drivers.

    Introduced: day 1.

    Relevance:  57xxx, afex mode enabled.

 6. Problem:    Theoretical bug where in case of nested VF FLRs, ack fails
                to arrive to driver.

    Change:     Ack driver in this case as well.

    Introduced: day 1.

    Relevance:  57xxx, SRIOV enabled.

 7. Problem:    VF FLR might not work due to bad VF index calculation.

    Change:     Read VF number from correct location in shmem.

    Introduced: 7.4.1.

    Relevance:  57xxx, SRIOV enabled, MF allowed or AFEX mode.

Enhancements:
-------------
 1. Request:    Move clp exit functionality (including resource allocation and
                relevant PCI config changes) to SWIM6. Relevant functionality
                is also still a part of MFW1.

 2. Request:    Support "auto" mode for VF allocation between the PFs. If
                number of VFs requested is "auto", then the unassigned VFs
                will be split equally between the PFs in that mode.

 3. Request:    In MF_ALLOWED mode allocate maximal number of MSIX vectors
                avd VFs per PF. CLP exit will minimize those values once
                received.

 4. Request:    CQ63786 - When nvram is set to hide the second path (option 72),
                reduce the power consumption instead of just not enumerating it.

Version 7.4.2 (May 31, 2012)
============================
Fixes:
------
 1. Problem:    CQ63318 - Enable Global MC filter (only allow DHCPV6 relay and
                server multicast) also allows BC DHCP packets.

    Change:     Disable DHCP filtering upon Enable Global MC filter.

    Introduced: Day 1.

    Relevance:  57xxx.

 2. Problem:    Periodic temperature update could be off up to 100 msec.

    Change:     Intended to sleep by ticks end up sleeping by usec.

    Introduced: 7.2.0.

    Relevance:  57xxx.

 3. Problem:    In AFEX mode, NIC will not include profile in the vif create
                request in case profile configured in the nvm starts with the
                prefix "none".

    Change:     Don't attach profile to the request only in case the string is
                exactly "none" (or empty).

    Introduced: day one.

    Relevance:  57xxx, AFEX mode.

 4. Problem:    CQ62966 - MCTP: 578xx responses corrupt/timeout for segmented
                responses.

    Change:     Enable Deglitch filter.

    Introduced: day one.

    Relevance:  57xxx, NCSI enabled.

 5. Problem:    CQ63452 - OEM specific statistics aren't functional after
                mcp reset while OS is up (for example: mcp reset which is
                performed when exiting from ediag while driver isn't up).

    Change:     Retain values of relevant shmem2 fields upon mcp reset
                (without chip reset or MFW upgrade - in those cases
                values will not be retained).

    Introduced: day one.

    Relevance:  578xx.

 6. Problem:    CQ63478 - Old Windows drivers asserts on storage functions
                in NPAR mode, as they check that MFW allocated at least
                17 MSIX vectors for them, while according to new scheme
                only 4 vectors were allocated for such functions.

    Change:     Change resource allocation method to allocate 17 vectors for
                storage functions in MF mode.

    Introduced: 7.4.1.

    Relevance:  57xxx, NPAR mode + FCoE function.

 7. Problem:    MFW flow control were always set to auto, rather than nvm option
                61, however since auto is translated into force rx/tx, this
                will actually have no effect, unless selected option was none.

    Change:     Set the MFW flow control setting according to nvm option 61 (Mfw
                Wol Flow control).

    Introduced: Day 1.

    Relevance:  Mainly NCSI when driver is not loaded.

 8. Problem:    When setting mf mode, higher functions are exposed over PCI
                even for 1G ports.

    Change:     Hide such functions.

    Introduced: 7.4.1.

    Relevance:  57800 in MF mode.

 9. Problem:    MFW advertises 0 MSIX vectors for higher functions on 57800.

    Change:     Fix wrong logic.

    Introduced: 7.4.1 (when new resource allocation feature was added).

    Relevance:  57800.

10. Problem:    CQ62995 - link is flapped during iSCSI boot because MFW sends
                vif create/enable for VIFs already initialized.

    Change:     Don't resend those messages for VIFs already created, even if
                receiving LOAD_DONE request for a driver already loaded.

    Introduced: day 1.

    Relevance:  57xxx in AFEX mode.

Enhancements:
-------------
 1. Request:    Force number of VFs per PF to be a multiple of 8.

 2. Request:    Advertise FLR support in PCI if SRIOV is enabled on that
                function, even if FLR marked as disabled in nvram.

 3. Request:    Advertise in shmem2 the size of port statistics structure
                allocated in scratchpad, so that drivers will know size of
                DMA operation to perform (for compatibility issues between
                MFW version to driver version).

 4. Request:    Enable FLR if shared option "FLR capability" is enabled
                in nvram. (The per-port option "Enable FLR" was removed).

 5. Request:    CQ63159 - Add basic Link Flap Avoidance support.
                Whenever link toggles, the requested link parameters are saved
                in a shared memory and are used to determine the conditions for
                LFA to occur. LFA can be achieved only in case all of the
                following terms take place:
                1. Driver supports LFA.
                2. Requested Link Speed, Duplex, Speed Capability Mask and
                   Requested Flow Control are the same as the saved ones
                Note that in case LFA conditions are not met, link should be
                re-initialized and flapped like before.

 6. Request:    Remove 20G support to save some space.

Version 7.4.1 (May 21, 2012)
============================
Fixes:
------
 1. Problem:    CQ62865 - No RX traffic after MCP is reset.

    Change:     Reset XMAC during common init to release it from this state.

    Introduced: day 1.

    Relevance:  57840.

 2. Problem:    CQ63030  Flow control is not functional when connected to
                a 1G pass-through module. This is a continuation of a bug
                fix CQ62139 from MFW v7.2.21.

    Change:     Enhance the MFW firmware, making sure that the Warpcore
                firmware loading sequence completes the HW initialization.

    Introduced: Continuation of a bug fix, CQ62139 from MFW 7.2.21.

    Relevance:  578xx.

 3. Problem:    CQ62964 - OEM blade got NMI in EDIAG shell.

    Change:     Fix DMA read bug introduced in MFW 7.2.50 when doing
                Sensor/statistics reporting.

    Introduced: CQ62380 from MFW 7.2.50.

    Relevance:  578xx.

 4. Problem:    CQ62543 - SFP+ module's not responding to I2C request.
                This problem occurs when the MFW is reset during I2C operation,
                and cause the I2C bus for read error due to "Transaction
                Pending".

    Change:     Extend the I2C work-around (See in 7.0.16) such that on the last
                try, perform a SFP+ power reset to release this state.

    Introduced: Day 1.

    Relevance:  578xx SFI.
                This fix applies only for boards with SFP+ power disable option
                (nvm cfg 160).

 5. Problem:    CQ62612 - NMI occurs with BCM 10G if run Windows 2008 R2 SP1
                Hibernate stress.

    Change:     Avoid MFW initiated DMA read upon resume from hibernation.

    Introduced: 7.0.0.

    Relevance:  578xx.

 6. Problem:    CQ62966 - MCTP: 578xx responses corrupt/timeout for segmented
                responses.

    Change:     Add retransmission logic in case of SMBUS error.

    Introduced: 7.0.0.

    Relevance:  578xx.

 7. Problem:    CQ63318 - Enable Global MC filter (only allow DHCPV6 relay and
                server multicast) also allows BC dhcp packets.

    Change:     Check for UDP destination port 547 to filter DHCPV6 server pkt
                instead of letting thru all DHCP packets.

    Introduced: Day 1.

    Relevance:  57xxx.

 8. Problem:    CQ63324 - Enable Global MC filter (allow all) does not pass
                through IPv6 Neighbor/Router Advertisement packets - VLAN
                only mode.

    Change:     Adjust ICMPv6 header offset when VLAN is enabled.

    Introduced: Day 1.

    Relevance:  57xxx with VLAN enabled.

 9. Problem:    BCM84834 PHY FW version is not saved for second port of each
                path since the pre init function was called for the first port
                only.

    Change:     Call the pre-init function for all ports.

    Introduced: Day 1.

    Relevance:  57840 + BCM84834.

10. Problem:    On dual-media device, the BCM84823 TX PMD was enabled for no
                reason during driver load (along with the BCM8727). This has
                no effect, just keeping the code straight.

    Change:     Do not enable the TX PMD for the BCM84823.

    Introduced: 7.2.7.

    Relevance:  Dual-Media.

11. Problem:    CQ63297, CQ63251 - In AFEX mode, vif initialization of preboot
                driver might fail (and break connectivity), as MFW wrongly
                waited for vif set ack from the driver.

    Change:     If preboot driver is loaded, respond immediately to vif set
                request from the switch without waiting for ack from the
                driver.

    Introduced: Day 1.

    Relevance:  57712 + 578xx, afex mode.

12. Problem:    CQ63085, CQ63119 - PCI Express Error Core-Mid Level Error when
                running continuous reboot test.

    Change:     Disallow PCIe state change in the middle of SMBUS transaction.

    Introduced: 7.2.53 and 7.4.0.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    Add EEE TLV support to LLDP handler, and notify driver with
                remote peer EEE values.

 2. Request:    Remove redundant OUI specific LLDP TLV support.

 3. Request:    CQ63169 - Restructure allocation of MSIX vectors per PF and
                number of VFs per PF according to new scheme. This scheme
                also affects IGU memory allocation by the MFW.

 4. Request:    CQ62829 - Replace HW based hard reset during unprepared power
                down with graceful MFW taking ownership by clearing driver's
                mailboxes, and re-initialize the PHY.
                In addition, check for missed PERST# deassertion, which can
                occur in case of rapid PERST# change, while the MFW is busy
                either dealing with other interrupt handling, or during thread
                wake up, in which interrupts are temporarily disabled.

    Relevance:  578xx.

 5. Request:    CQ60633 - Don't Support DCBX ADMIN messages only from PMF
                driver, but also from non PMF ones.

 6. Request:    Update max VF per PF in MF mode.

 7. Request:    Decrease SWIM1 code switch, by removing PHY probe SWIM4 and call
                it once during common init since it is not changing.
                In addition, call the common_init only once (per chip, and not
                per path).

Version 7.4.0 (Apr 22, 2012)
============================
Fixes:
------
 1. Problem:    Timer is not always enabled to monitor temperature. Thus,
                NCSI OEM Get Temperature doesn't work all the time.

    Change:     Always enable timer for temperature monitoring.

    Introduced: 7.2.49.

    Relevance:  578xx, AFEX mode.

 2. Problem:    Today, if driver pulse is timed out MCP takes ownership of the
                link. Yet, if driver recovers afterwards (i.e.: driver simply
                didn't get cpu for long time, but didn't crash) it doesn't
                know MCP took ownership of the link and it can cause severe
                issues.

    Change:     MCP won't take ownership of the link in such a flow.

    Introduced: day 1.

    Relevance:  57712 + 578xx.

 3. Problem:    CQ62797 - Get_NCSI_Statistics command does not return
                tx packet value correctly in non RMII mode.

    Change:     Update tx pkt statistics in NCSI non-RMII mode.

    Introduced: T7.0.

    Relevance:  578xx with NCSI enabled in non-RMII mode.

Enhancements:
-------------
 1. Request:    New Warpcore microcode available (ver: D10A; checksum =
                0xC4B0). Improves cross talk tolerance for certain long
                channels ,BER in XFI & XLAUI modes and BER and jitter tolerance
                in OSx2 modes.

 2. Request:    CQ62637 - When SFP (1G) optic module is plugged in, adjust the
                link speed accordingly.

 3. Request:    Reduce debug trace messages in NCSI non-RMII mode. Add
                statistics for such debug warning messages.

 4. Request:    Don't publish SRIOV support through PCI if port is in AFEX
                mode.

 5. Request:    CQ62371 - Disable NCSI passthru traffic upon AFEX mode.

Version 7.2.52 (Apr 18, 2012)
=============================
Fixes:
------
 1. Problem:    CQ62635 - In AFEX mode, mfw will halt if unloading last driver
                after receiving vif list set/get request to it, before reaching
                to respond to the switch.

    Change:     Fix logics to reject the switch in such scenario (if it's not
                latest driver, send the request to the new PMF instead).

    Introduced: day one.

    Relevance:  57712 + 578xx, AFEX mode.

 2. Problem:    CQ62691, CQ62687, CQ62697 - In AFEX mode, NIC might send wrong
                VIC msgID in responses to the switch, which apparently can cause
                switch to toggle the link frequently.

    Change:     Update response msgID in the current place.

    Introduced: MFW 7.2.51 (due to fix of problem #2).

    Relevance:  57712 + 578xx, AFEX mode.

Version 7.2.51 (Apr 17, 2012)
=============================
Fixes:
------
 1. Problem:    CQ62410 - Driver fails to acquire HW lock during load/unload,
                if previously didn't send driver pulse for more than 5 seconds.

    Change:     Fix wrong HW lock acquire implementation in case of driver
                pulse timeout. Wrong implementation caused MCP to remain
                locked on that resource.

    Introduced: 7.2.12.

    Relevance:  57712 + 578xx.

 2. Problem:    In AFEX mode, VIC response might be sent with wrong msgID, if
                the request from the switch arrived while we are pending for
                response from the switch to a different message.

    Change:     Store request msgID to avoid this race.

    Introduced: day one.

    Relevance:  57712 + 578xx, AFEX mode enabled.

 3. Problem:    In AFEX mode, VIC open request was sent less than 3 seconds
                after AFEX convergence in LLDP, and switch ignored that
                packet.

    Change:     Set internal timer to 3-4 seconds range.

    Introduced: day one.

    Relevance:  57712 + 578xx, AFEX mode enabled.

 4. Problem:    CQ62543 (partial) - MCP is halted after SWIM loading failed in
                the middle.

    Change:     In case SWIM loading failed when thread wakes up, set the
                current thread as NONE.

    Introduced: day one.

    Relevance:  All.

 5. Problem:    Inconsistent Error/response code with NX1.

    Change:     Change NCSI OEM Response code to be consistent with NX1 when
                there's a mismatch of OEM version number.

    Introduced: day one.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Slightly improve passthru traffic performance by taking out
                2 unnecessary writes of zero to ingress fifo upon DMA to BMC.

 2. Request:    Change per SWIM GP restore mechanism (internal offset of heap
                per SWIM) to be centralized, to avoid the need to add it at
                the beginning of each function called from a different SWIM.

 3. Request:    Support 57840 B1 revision.

Version 7.2.50 (Apr 04, 2012)
=============================
Fixes:
------
 1. Problem:    CQ62241, CQ62230 - The board is not powered of Vaux on some
                stations.

    Change:     PERST assertion ISR was received before it was determined that
                Vaux is required. The PERST assertion ISR is enabled only after
                determining if Vaux is required. In addition, VAUX_SEL_L is the
                only signal that is changed during PERST assertion.

    Introduced: 7.2.19 where PERST ISR could shutoff Vaux.

    Relevance:  578x0 with Vaux.

 2. Problem:    CQ62354 - Board is still running out of Vaux even if it could be
                turned off.

    Change:     The SPIO number was used instead of the mask and therefore the
                VAUX_EN_L (SPIO0) had no affect and VAUX_DIS_L (SPIO1) was
                actually enabling the Vaux (using SPIO0 instead of SPIO1).

    Introduced: 7.2.22 where the new function was added after driver unload.

    Relevance:  578x0 with Vaux.

 3. Problem:    CQ62380 - Fail to DMA when preboot driver unload.

    Change:     Add indication during driver unload if
                it caused D3 pwr state.

    Introduced: 7.2.0.

    Relevance:  578x0.

 4. Problem:    CQ62295 - LED is still ON after the PHY got reset from fan
                failure test case.

    Change:     Added work around to configure 84833 PHY to 1Gbps and all
                LEDs off before putting it into RESET status for hardware
                limitation.

    Introduced: Day one.

    Relevance:  84833 PHY.

Enhancements:
-------------
 1. Request:    Support new indication from the driver when it is unloading to
                indicate if it is going to D3 or keeping the device in D0.

 2. Request:    Refine PCIE SerDes analog parameters (Tx, Rx, and PLL) for
                all speeds (Gen1/Gen2/Gen3).

    Relevance:  578xx.

 3. Request:    CQ62371 - Disable NCSI passthru traffic upon AFEX mode.

    Relevance:  57712 + 578xx.

 4. Request:    Enhance power saving by bringing down PCIE SerDes PLL
                when the device goes to L1 state.

    Relevance:  578xx.

 5. Request:    Add support to 57811.

Version 7.2.21 (Mar 21, 2012)
=============================
Fixes:
------
 1. Problem:    CQ62139 - No link on both ports of 578xx after reboot.

    Change:     Add delay after disabling and enabling Warpcore sequencer,
                and set some registers to default value during common init
                procedure.

    Introduced: Day 1.

    Relevance:  578x0.

 2. Problem:    CQ62208 - MCP may halt due to massive VPD request bombard,
                mainly when NPAR is enabled, and after reboot.

    Change:     Add protection for the sleep method.

    Introduced: T7.2.

    Relevance:  All.

Version 7.2.20 (Mar 18, 2012)
=============================
Fixes:
------
 1. Problem:    (continued) CQ61898 - The board does not enumerate on specific
                OEM systems every second reboot.

    Change:     further refinement.

    Introduced: 7.2.19.

    Relevance:  578x0.

Version 7.2.19 (Mar 15, 2012)
=============================
Fixes:
------
 1. Problem:    CQ62018 - Linux E2 Eth device resource busy when configure port.

    Change:     Add exception handling and take out infinite loop due to
                exception. Undo a code optimization change in 7.2.16.

    Introduced: 7.2.16.

    Relevance:  57xxx with NCSI enabled.

 2. Problem:    CQ62070 - AFEX profiles displayed to user might be wrong if one
                profile is a sub-string of another profile.

    Change:     Verify null terminator when comparing strings.

    Introduced: Day one.

    Relevance:  57xxx with AFEX enabled.

 3. Problem:    CQ62046 - No link on 57712 + 8727 designs in which the TX laser
                is controller via GPIO, after T6.0 drivers/MFW were loaded
                previously without reboot. This issue occurs since old drivers
                control the 8727 TX laser only by changing PHY register, and
                new drivers assumed this register had a default value, despite
                that this register is not actually controlling the TX laser in
                those designs. Note that this issue is not likely to occur
                because T6.0 driver don't support these kind of boards, and
                loading new drivers afterwards without reset, is not common
                practice.

    Change:     Check SW flag instead of querying the TX_DIS register.

    Introduced: T6.2.

    Relevance:  BCM8727 designs with GPIO controlling the TX laser.

 4. Problem:    NCSI Commands loopback setting in NVRAM doesn't work
                properly.

    Change:     Fix enable/disable logic for NCSI loopback mode.

    Introduced: T7.0.

    Relevance:  57xxx with NCSI enabled.

 5. Problem:    Wrong EPIO value might be changed if crossed temperature /
                fan failure threshold, in case value of EPIO to change in nvm
                is N/A.

    Change:     Don't change EPIO value if EPIO is marked as N/A in nvm.

    Introduced: 7.2.12.

    Relevance:  578xx.

 6. Problem:    CQ61898 - The board does not enumerate on specific OEM systems
                every second reboot.

    Change:     Revised the power scheme to enable Vaux only if required and
                only when Vmain is not present or when PERST is asserted (main
                power is about to go away).

    Introduced: T7.0.

    Relevance:  578x0.

 7. Problem:    In some corner cases, repeated NCSI cmds might stop responding.

    Change:     Fix NCSI command descriptors are freeing bug.

    Introduced: 7.0.

    Relevance:  57xxx with NCSI enabled.

 8. Problem:    Periodic function is called with no need even when driver
                controls all ports. This has no real impact besides wasting
                some clock cycles since everything is locked anyhow.

    Change:     Mark link state as uninitialized when driver is loaded.

    Introduced: T7.2.

    Relevance:  All.

 9. Problem:    VPD interrupt handling is slow, due to some unnecessary nvm
                operations (searching for vpd image location per each pf).

    Change:     Find VPD image location only once per interrupt.

    Introduced: 7.2.14.

    Relevance:  All.

10. Problem:    VPD response starvation might occur if receiving many
                VPD requests on different ports in parallel.

    Change:     In interrupt handler serve one interrupt per port, instead
                of running in loop serving all interrupts of a specific port.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Do not block PCI read request on driver initiated FLR.

 2. Request:    CQ62102 - Removed a 578x0 A0 workaround.

    Relevance:  578x0.

Version 7.2.18 (Mar 07, 2012)
=============================
Fixes:
------
 1. Problem:    CQ61837 - Define clear boundaries for PCI-E link
                disable<->enable operation while in S0.

    Change:     modify firmware to adhere to specific timing window during PCI-E
                link disable<->enable transaction while system is in S0.

    Introduced: T7.0 (interception of 578x0).

    Relevance:  There is no problem when coming out of system reset (#PERST).
                This change is limited to systems that toggle the PCI-E link
                while in S0.  This is for 578x0 in GEN2 mode only.

 2. Problem:    CQ61898 - On some systems, the board is not enumerated on the
                PCI.

    Change:     The board is consuming too much power from Vaux. The resolution
                is to set it to consume power from Vmain all the time and trust
                the PERST assertion ISR to set it to Vaux. The ISR will be
                called on first power up as well.

    Introduced: This is a complementary fix to the enhancement with the same CQ
                number from version 7.2.17.

    Relevance:  578x0 with Vaux.

Enhancements:
-------------
 1. Request:    Add ability to initiate FLR via driver command instead of PCI
                configuration transaction.

Version 7.2.17 (Mar 05, 2012)
=============================
Fixes:
------
 1. Problem:    CQ58212 (DCBX) - Remote MIB features do not reflect actual
                willing mode.

    Change:     Update Remote MIB features willing mode accordingly.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 2. Problem:    CQ61932 - NCSI fail to respond to duplicated Deselect
                Package Command when the package is deselected already.

    Change:     Allow both Select Package and Deselect Package commands
                in deselected mode.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 3. Problem:    CQ61720 - MDC/MDIO access timeout message may appear on driver
                load due to missing clock setting before resetting the LED.

    Change:     Relocate setting the MDC/MDIO clock before resetting the LED
                since this operation involves access to the PHY registers.

    Introduced: 7.0.0.

    Relevance:  All.

 4. Problem:    CQ61525 - No WoL link on ports in random order when driver
                goes to S5 since driver resets NIG which clears NIG interrupt
                mask settings and preventing link attentions. This issue exists
                in potential since 7.0.0, but due to some timing changes in the
                driver in T7.2, it is more likely to occur.

    Change:     Restore NIG interrupt mask after driver resets the NIG, when
                last driver is unloaded on a path.

    Introduced: 7.0.0.

    Relevance:  57800 4-port devices, when Windows is used.

 5. Problem:    MFW resets only the path of the last function that is unloaded.

    Change:     Reset any path when the last function on a path is unloaded.

    Introduced: Day 1.

    Relevance:  57712/578xx.

 6. Problem:    CQ60042 - Flow control is not functional when OEM 57810s devices
                set to auto and evaluated via 1gb PT Module.

    Change:     Added code to handle CL37 AN when link is achieved via CL37 in
                578xx-KR.

    Introduced: T7.0.

    Relevance:  578xx-KR.

Enhancements:
-------------
 1. Request:    CQ61898 - Consume from Vmain when it is present regardless of
                nvram configuration.

    Relevance:  578x0.

 2. Request:    Further take out redundant support of E3 A0 to conserve code
                space and CPU.

    Relevance:  578x0.

 3. Request:    CQ61934 - Update default Tx Equalization settings for
                SFP+ mode after analysis at all PVT corners.

    Relevance:  578xx SFP+.

 4. Request:    CQ61666 - Improve NCSI Pass through UDP/TCP performance.

    Relevance:  57712 + 578xx when NCSI is enabled.

 5. Problem:    CQ61864 (DCBX) - DCBX non-CEE packets are not responded.

    Change:     Respond immediately to DCBX non-CEE packets to trigger
                remote peer DCBX-CEE packets.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

Version 7.2.16 (Feb 28, 2012)
=============================
Fixes:
------
 1. Problem:    CQ61734 - Return EEE support for 1G port of OEM design
                incorrectly.

    Change:     check PHY type first.

    Introduced: 7.2.1.

    Relevance:  57800.

 2. Problem:    CQ61666 - NCSI Pass through UDP/TCP performance degradation.

    Change:     More optimization of NCSI pass-thru logic.

    Introduced: 7.2.1.

    Relevance:  57712 + 578xx when NCSI is enabled.

 3. Problem:    CQ61525 - Going down to S5 WoL may result in random link down,
                because taking MDC/MDIO lock failed due to inadequate timeout
                used. This issue may be reflected also on other link commands,
                where the lock time is taken for over 1ms.

    Change:     Try to acquire the MDC/MDIO hw lock for 2 sec instead of 1 ms.

    Introduced: 7.2.0.

    Relevance:  All.

 4. Problem:    CQ61732 - DCBX packets don't reach MFW in A-FEX mode after
                preboot driver was loaded, in case DCBX is marked as disabled
                in NVRAM (DCBX should still be sent due to A-FEX TLV).

    Change:     Restore NIG values when DCBX is disabled and A-FEX mode is set.

    Introduced: Day one.

    Relevance:  57712 + 578xx when A-FEX mode is set.

 5. Problem:    CQ61807 - MFW hangs after receiving A-FEX port statistics
                request.

    Change:     Fix wrong assignment of number of functions per port when
                handling such request.

    Introduced: Day one.

    Relevance:  57712 + 578xx when A-FEX mode is set.

 6. Problem:    CQ61598 - Volatile configuration, such as driver settings for
                WoL, is lost when moving to low power on some systems.

    Change:     Change SEL_VAUX to use Vaux when PERST is asserted regardless of
                option #186 settings.

    Introduced: Day one.

    Relevance:  Boards that require Vaux.

 7. Problem:    CQ61705 - MFW hangs if failed reloading a swim after going to
                sleep inside the swim.

    Change:     Retry loading the swim for 10 seconds, and if still failing -
                ignore current task (by clearing thread's code stack) and rerun
                the thread.

    Introduced: T7.2.

    Relevance:  57712 + 578xx.

Enhancements:
-------------
 1. Request:    Update OEM data types per vendor suggestion and enable IBFT stat
                update.

Version 7.2.15 (Feb 23, 2012)
=============================
Fixes:
------
 1. Problem:    CQ61666 - NCSI Pass through UDP/TCP performance degradation.

    Change:     Optimize NCSI pass-thru logic.

    Introduced: 7.2.1.

    Relevance:  57712 + 578xx when NCSI is enabled.

 2. Problem:    On rare cases, when link speed changes from 10G to 1G or lower,
                then remote fault may be reported.

    Change:     Check remote fault indication on link speed of 10G and above,
                since UMAC and EMAC do not support it.

    Relevance:  BCM578xx, BCM848x3, BCM872x.

    Introduced: 7.2.10.

 3. Problem:    CQ61512 - SUT crashes following MFW upgrade. During upgrade,
                the nvram directory is changing and at that time, a request
                from the driver to verify optic module arrived, while the
                relevant SWIM wasn't found. In this case, MFW hasn't cleared
                the driver's command, so no response was returned, causing the
                driver to timeout on this command, and halt.

    Change:     In case optic module verification command arrive, and SWIM
                loading fail, clear the driver's command.

    Introduced: 7.0.0.

    Relevance:  SFP+ boards.

 4. Problem:    CQ61678 - System crash after running IO and pulling cable.
                Occurs since TX pipe is stalled due to missed XON indication
                (from MAC did to NIG). See related CQ56434 which fixed the
                problem for 57712.

    Change:     Force XON on NIG on link down/up.

    Introduced: T7.0.

    Relevance:  578xx.

 5. Problem:    NC-SI throughput is low + other MFW operations are slow.

    Change:     Don't load SWIM just in order to verify if received packet
                matches the relevant traffic type (DCC, LLDP, NPAR-SD).
                Instead, check traffic type in BC2, and load swim only in
                case of a match.

    Introduced: T7.0.

    Relevance:  57712 + 578xx.

 6. Problem:    CQ61673 - MFW can hang when upgrading nvm using FW upgrade
                tools.

    Change:     Problem occurs when swim foldback fails due to the upgrade. In
                this flow code stack of the thread should be cleared. But,
                stack clearance implementation was wrong and cleared always
                stack of thread 0.

    Introduced: 7.2.0 with the multi-threaded functionality.

    Relevance:  57712 + 578xx.

 7. Problem:    1G LED stays on with cable unplugged on 57712+8727 designs.

    Change:     Restored the MODE_LED_OFF mode to explicitly keep the LEDs
                off.

    Introduced: 7.2.10.

    Relevance:  LED manipulation for 54616/18 and 8727 PHYs.

 8. Problem:    CQ61712 - Incorrect format for NCSI OEM FCOE statistics.

    Change:     Add Endian conversion.

    Introduced: 7.2.1.

    Relevance:  578xx with FCOE enabled.

 9. Problem:    DCBX (CQ61714) - Local MIB does not reflect Admin MIB
                runtime change.

    Change:     Merge Admin and Remote APP TLV entries correctly.

    Introduced: T7.0.

    Relevance:  57712 + 578xx.

10. Problem:    CQ61532 - System halts when driver is loaded after fan failure
                has occurred. This can be seen also after reboot in fan failure
                status. This problem happens in 578xx only where the MFW stops
                the clocks which prevents the host to map the PCI IO registers
                to BAR0, and cause fatal error.

    Change:     MFW signals the fan failure by setting the PCI version number
                to 0xff (reflected in PCI address 0x8), thus allowing the
                driver to check this failure before mapping the bar.

    Introduced: 7.0.51/7.2.0.

    Relevance:  578xx boards with fan.

Version 7.2.14 (Feb 16, 2012)
=============================
Fixes:
------
 1. Problem:    Stack space was increased unnecessarily.

    Change:     Reduce multithread stack space usage.

    Introduced: 7.2.13.

    Relevance:  578xx.

 2. Problem:    Optic module verification check may provide incorrect indication
                when running on non-base functions used as the PMF.

    Change:     Retrieve request parameters according to the requested function
                rather than the requested port.

    Introduced: Day one.

    Relevance:  All multi-function modes.

 3. Problem:    CQ61531 - NCSI OEM command indicates TOE not supported in
                1G ports.

    Change:     Indicate TOE support in all ports.

    Introduced: 7.2.1.

    Relevance:  57800 1G ports.

 4. Problem:    CQ61592 - In NIV mode - When changing maximum BW configuration
                from specific limited value to no limit value, the BW
                configuration stored in shmem isn't changed, so old config
                remains.

    Change:     Change shmem value in this scenario to the default BW
                configuration.

    Introduced: day one.

    Relevance:  57712 + 578xx when NIV is enabled.

 5. Problem:    CQ61601 - The FW version for 84833 PHY was captured
                incorrectly. As a result, the major number is always
                reported as '1'.

    Change:     Fixed to read the correct field of the PHY register.

    Introduced: 7.2.5.

    Relevance:  84833 PHY.

 6. Problem:    Upgrading a file to the nvram may cause nvram defrag which
                causing re-allocation of other files. In case it happens to the
                VPD or the optic module file, it will cause MFW to use invalid
                data for these until mcp is reset.

    Change:     Find the optic module and VPD file in nvram before each access.

    Introduced: 7.0.24.

    Relevance:  All.

 7. Problem:    CQ61577, CQ61578, CQ61582 - VIC session hangs during preboot,
                because VIC Stats request is sent to preboot driver even though
                it doesn't support it.

    Change:     If preboot driver is loaded (according to shmem field
                afex_driver_support) mark in vic open request that stats
                requests aren't supported.

    Introduced: Day one.

    Relevance:  57712 + 578xx NIV enabled.

Enhancements:
-------------
 1. Request:    If "Force FLR capability" bit is set in nvram, advertise FLR
                is supported on all ports. Otherwise, use existing per port
                configuration.

 2. Request:    Respond with error to VIC messages arrived from the switch, in
                case they weren't published as supported in the vic open
                request.

Version 7.2.13 (Feb 08, 2012)
=============================
Fixes:
------
 1. Problem:    The MFW set the MEM_SPACE and BUS_MASTER bits.

    Change:     The MFW allowed "un-hiding" PCI functions at the end of the CLP
                stage. This is not required and the MFW is not enabling those
                bits at this stage anymore.

    Introduced: NPAR day one.

    Relevance:  All multi-function modes.

 2. Problem:    CQ61273, CQ60642 - WoL does not function on all ports on 4 port
                devices.

    Change:     The MFW run the PHY common initialization function for each port
                and it caused losing the configuration of the ports that were
                unloaded first. The common initialization can be called only
                once and there is no need to call it again after driver unload.

    Introduced: 7.2.9.

    Relevance:  57800 4 ports.

 3. Problem:    CQ61374 - OEM NCSI returns EEE supported on sfp port.

    Change:     Report EEE only in 1G copper ports.

    Introduced: 7.2.1.

    Relevance:  578xx.

 4. Problem:    CQ61450 - Diag crash after MFW upgrade in CLP MF allowed mode.

    Change:     The CLP configuration should be cleared on MFW upgrade since
                data structures might shift in different MFW builds.

    Introduced: Day one, but became more obvious in 7.2.12 where the CLP
                configuration was really lost.

    Relevance:  CLP MF allowed mode.

 5. Problem:    CQ61446, CQ61212. In some small window, DMA is requested on PF
                that is not enabled.

    Change:     Select proper PFN right before DMA is requested.

    Introduced: 7.2.1.

    Relevance:  578xx.

 6. Problem:    CQ61414 - DCBX intermittent convergence failure.

    Change:     Don't parse rx packets while DCBX FSM assumes link is down.
                This race of miss-sync between real link state to the mirrored
                one causes sequence/ack numbers mismatch and wrong parsing.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 7. Problem:    CQ61433 - NIV profile name sent is not zeroed when changed
                (causing end of former name to be concatenated to the
                new one).

    Change:     Don't copy all string stored in NVM, but only up to first
                null terminator.

    Introduced: Day one.

    Relevance:  57712 + 578xx NIV enabled.

Enhancements:
-------------
 1. Request:    CQ55212 - ISCSI boot statistics for OEM.

 2. Request:    link read_status updates link partner's capabilities (fc,
                speed) whenever autoneg was used.

    Relevance:  All boards with phys that support autoneg.

Version 7.2.12 (Feb 01, 2012)
=============================
Fixes:
------
 1. Problem:    CQ61185 - NCSI OEM Command doesn't show correct driver state.

    Change:     Add missing parentheses that messed up precedence.

    Introduced: 7.2.11.

    Relevance:  578xx.

 2. Problem:    CQ59691 - Host Network IP lost in OEM mode on W2k8 R2.

    Change:     Fix incorrect default register setting.

    Introduced: 7.0.1.

    Relevance:  578xx.

 3. Problem:    CQ61190 - Downgrading to T7.0 version caused MFW to hang
                because BUILD_TIME changed scratchpad offset, hence MFW
                didn't recognize we're after upgrade and didn't clear
                relevant NC-SI shmem structures.

    Change:     Clear all scratchpad (besides MFW1 part) when noticing MFW
                upgrade occurred. By that, BUILD_TIME will be cleared as
                well and MFW upgrade will be noticed next time.

    Introduced: Day one.

    Relevance:  57712 + 578xx (when NC-SI is enabled).

 4. Problem:    CQ61181 (DCBX) - Packet not acknowledged after remote
                peer starts sending APP TLV.

    Change:     Send ACK after detecting first packet with APP TLV.

    Introduced: Day one.

    Relevance:  578xx/57712.

 5. Problem:    CQ61233 (DCBX) - Packet not transmitted with error
                indication after mismatch detection.

    Change:     Send packet with error indication after detecting mismatch.

    Introduced: Day one.

    Relevance:  578xx/57712.

 6. Problem:    CQ53681 -  New OEM NCSI Command to support Get FCoE Statistics.
                CQ56728 -  New OEM NCSI Command to support Get ISCSI Statistics.

    Change:     Fix typo introduced in 7.2.10 and allow variable # of instances
                of offloaded connections.

    Relevance:  578xx.

 7. Problem:    CQ59723 - driver pulse and mcp pulse might get out of sync.

    Change:     When receiving driver pulse sync it with mcp pulse even if
                driver is unloaded (ALWAYS_ALIVE flag is set), as it's possible
                that MCP didn't handle last pulse before that flag was set.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 8. Problem:    CQ60672 - iSCSI boot fails in 57810+84833 NIC when running at
                100HD link achieved via auto-neg.

    Change:     Added configuration to set MAC controller in half duplex mode
                when PHY links up in half duplex mode.

    Introduced: Day 1.

    Relevance:  578xx+848x3.

 9. Problem:    57712 Chip is reset on some systems when both ports are loaded.

    Change:     The chip consumed too much power from Vaux instead of moving to
                Vmain.

    Introduced: 7.2.9.

    Relevance:  57712.

10. Problem:    CQ61133 - When NC-SI is enabled, external phy fw version gets
                corrupted.

    Change:     Fix wrong access by NC-SI which writes NC-SI statistics to
                wrong address on scratchpad.

    Introduced: 7.0.20 (when those statistics counters were added).

    Relevance:  578xx + NC-SI enabled.

Enhancements:
-------------
 1. Request:    CQ60637 - Do not enumerate 578x0A0 on the PCI. In case this MFW
                is burned on 578x0 A0, it will activate the play dead feature
                and by that will prevent the chip from working or even
                enumerating on the PCI.

 2. Request:    CQ60845 -
                1. Change two temparature monitor actions (fan failure
                   and shut down) to be independent, i.e.: one can be active
                   while the other isn't.
                2. Disable monitor if its EPIO is marked as N/A.

 3. Request:    Clear old trace buffer when recognizing an MFW upgrade occurred.

 4. Request:    Clear the FCoE license in case nvram bit #187 "Prevent FCoE" is
                set.

 5. Request:    Add shmem parameter to allow iSCSI ROM and FCoE ROM to deposit
                physical address of iBFT.

 6. Request:    CQ59171 - Update APP TLV parsing mechanism to identify non-CEE
                DCBX TLVs.

 7. Request:    Modify Mgmt attribute data type per OEM suggestion.

Version 7.2.11 (Jan 24, 2012)
=============================
Fixes:
------
 1. Problem:    CQ 61083, 61092 - FCOE is shown active in NCSI OEM responses
                even in 1G port.

    Change:     Make sure reject all FCOE cmds for 1G ports.

    Introduced: 7.2.10.

    Relevance:  57800.

 2. Problem:    CQ 61113 - Fail to reject some incorrect OEM NCSI command.

    Change:     Add more validation.

    Introduced: 7.2.1.

    Relevance:  578xx.

 3. Problem:    CQ60941, CQ60912, CQ60862, CQ61050, CQ61161 - DCBX out-of-sync.

    Change:     Fix the DCBX parsing mechanism.

    Introduced: 7.2.8.

 4. Problem:    CQ61089, CQ60840 - MFW hang after SWIM load failure.

    Change:     The currently loaded SWIM was updated even in case of failure,
                so the next call for that SWIM caused a jump to an address at
                the actual current SWIM that in some cases resulted in hanging
                the MCP CPU.

    Introduced: SWIM mechanism day one.

 5. Problem:    CQ61090 - NX2 NC-SI not properly returning Family Driver
                version in OEM command.

    Change:     New type definition for FMV type.

    Introduced: 7.2.0.

    Relevance:  578xx.

 6. Problem:    MFW doesn't accept commands from driver if same function is
                already in transition mode (between LOAD_REQ to LOAD_DONE
                and between UNLOAD_REQ to UNLOAD_DONE). That blocks, for
                example, UNLOAD_REQ after LOAD_REQ on that same function,
                which is wrong.

    Change:     Don't block commands for the function in transition (but
                continue blocking all other functions).

    Introduced: day 1.

    Relevance:  57712 + 578xx.

Enhancements:
-------------
 1. Request:    Optimize SWIM loading time by remembering if the shadow image
                or the original image should be loaded.

 2. Request:    In MF allowed mode, when receiving clp exit command - set all
                iSCSI and FCoE MAC addresses (including WWPN/WWNN) according
                to L2 MAC address.

Version 7.2.10 (Jan 19, 2012)
=============================
Fixes:
------
 1. Problem:    Machine halts during boot if MBA is enabled in NVRAM but MBA
                NVM image is missing or corrupted.

    Change:     Enable expansion ROM dummy interrupt that returns 0 to all
                expansion rom requests in such scenario.

    Introduced: 7.2.0.

    Relevance:  578xx.

 2. Problem:    MFW fail to link up in case it fail to acquire MDIO lock.

    Change:     Restore link state in case MDIO lock taking has failed.

    Introduced: T7.2.

    Relevance:  578xx/57712.

 3. Problem:    CQ60838 - Occasionally the KR link does not come up.

    Change:     Invoke auto-neg restart at the end of the KR link configuration.

    Introduced: T7.2.

    Relevance:  578xx KR.

 4. Problem:    CQ61028 - No LED at 1G on 57712+8727 designs.

    Change:     Removed a logic error checking for a different PHY.

    Introduced: T7.0.

    Relevance:  LED manipulation for 54616/18 and 8727 PHYs.

 5. Problem:    BCM84833 is able to link up when link speed is set to 10G
                force while link partner is set to 1G force.

    Change:     When requested speed is 10G force, advertise only 10G speed.

    Introduced: T7.0.

    Relevance:  BCM84833.

 6. Problem:    CQ60941, CQ60912 - DCBX does not converge since TLVs are
                overlooked.

    Change:     Fix packet verification during parsing.

    Introduced: T7.2.

    Relevance:  578xx/57712.

 7. Problem:    CQ61045, CQ61034, CQ60840 Wrong power consumption scheme is
                causing overdraw of Vaux while Vmain is present.

    Change:     A new nvram bit was added to indicate that the board supports
                transition from Vmain to Vaux without a power gap. When this bit
                is set, always select Vmain, the HW will supply power from Vaux.
                In High power consumption mode (D0 when the driver is loaded),
                VAUX_SEL_L is always set to high.

    Introduced: 7.2.9.

    Relevance:  578x0 with Vaux.

 8. Problem:    VAUX_EN_L was set to high z instead of high when Vaux was
                required.

    Change:     The setting of VAUX_EN_L was overridden when VAUX_DIS_L was set.

    Introduced: 7.2.9.

    Relevance:  578x0 with Vaux.

Enhancements:
-------------
 1. Request:    CQ59363 - Display the link partner FC capabilities when FC is
                not autoneg.

    Relevance:  All.

 2. Request:    CQ53681 -  New OEM NCSI Command to support Get FCoe Statistics.

    Relevance:  578xx.

 3. Request:    CQ57932 - Add Tx-Fault link detection. In case TX errors are
                detected by the MAC layer, the elink will signal the OS that
                the link went down, and when the error is gone, a link up
                signal will be sent.

    Relevance:  BCM84823.

 4. Request:    Mark that function is not loaded in MISC register in case
                driver pulse is timed out. By that, driver recovery flow
                will still be able to run if driver is timed out (mostly
                for physical device assignment feature).

Version 7.2.9 (Jan 17, 2012)
============================
Fixes:
------
 1. Problem:    Response to VPD request may take longer than needed due to
                incorrect usage of image loader priority during interrupt.

    Change:     Set the image loader priority for interrupt tasks to the
                highest one, and set the WC image loader to regular priority.

    Introduced: 7.2.8.

    Relevance:  578xx.

 2. Problem:    CQ60722 - NIV isn't working when DCBX is disabled in NVRAM.

    Change:     Enable DCBX FSM and configure NIG when NIV mode is set even
                if DCBX is disabled in NVRAM.

    Introduced: day one.

    Relevance:  All.

 3. Problem:    CQ58366 - Revised the Vaux settings.

    Change:     1. Force all signals instead of leaving some in high-z.
                2. Keep DIS_VAUX_L low when Vaux is not required.
                3. Set Vaux only when the last driver is unloaded according to
                   all previous settings by all drivers.

    Introduced: day one.

    Relevance:  578xx with WoL power circuit similar to A1006G_D, A1007G and
                A1008G_D.

 4. Problem:    CQ60631, CQ60642, CQ60572, CQ60897 - Driver WoL settings were
                not kept.

    Change:     The driver WoL settings such as disable WoL or enable it with
                specific MAC addresses should be done only after the MAC is
                already configured. This functionality was moved to the link
                thread.

    Introduced: 7.2.0 with the multi-threaded functionality.

    Relevance:  All WoL.

 5. Problem:    CQ60731 - NIV functions of one of the paths are not running
                after parity occur.

    Change:     Set NIG VIC values when NIG restore is called upon last driver
                unload.

    Introduced: Day one.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    CQ59755 - Added a universal license support for an OEM.

    Relevance:  578x0.

 2. Request:    Change FCoE capabilities advertised by the driver to be
                per port.

 3. Request:    Add fields to FCoE statistics requested from the driver to
                support relevant NC-SI OEM request. In addition, update version
                number to 2.

 4. Request:    On PF FLR, start clean-up on timed-out functions as well.

 5. Request:    On PF FLR, release PF HW locks.

 6. Request:    Clear old pending MFW notifications towards the driver on driver
                load request.

 7. Request:    Hide second path functions on 57811.

 8. Request:    CQ57932 - Add Tx-Fault link detection. In case TX errors are
                detected by the MAC layer, the elink will signal that
                the link went down, and when the error is gone, a link up
                signal will be sent.

    Relevance:  Chips: BCM57712, BCM57800, BCM57810.
                Phys: BCM8727, BCM8726, BCM84833.

 9. Request:    CQ60699 - Disable auto-grEEEn for 84833 PHY.

    Relevance:  84833 PHY only.

Version 7.2.8 (Jan 10, 2012)
============================
Fixes:
------
 1. Problem:    A potential loophole in license validation is found.

    Change:     Skip license validation on backup MAC addr if invalid.

    Introduced: v6.4.x (CQ50653).

    Relevance:  All.

 2. Problem:    CQ60729 - Deadlock while loading multiple ports on optic devices
                with optic module verification feature enabled.

    Change:     The optic module verification waited until all driver
                load/unload operations on all ports ended. In case the optic
                module verification happened on the same CPU that was used to
                load another instance of the driver, on OS that called the optic
                module verification in non-sleepable context, a deadlock
                happened. The change is to allow optic module verification while
                another instance is loading/unloading and protect only the
                requesting driver instance.

    Introduced: 7.2.0.

    Relevance:  Optic PHY with optic module verification enabled.

 3. Problem:    CQ60748 - NC-SI returns incorrect configuration in 1G port of
                OEM setup.

    Change:     channel >= 2 was mistyped as channel > 2.

    Introduced: 7.2.0.

    Relevance:  1G port of 57800 of OEM setup.

 4. Problem:    CQ59171 (DCBX) - DCBX Packet was dropped when two APP TLVs
                are present.

    Change:     Accept packet when two different APP TLVs are present. In case
                both APP TLVs have the same sub-type then discard both.

    Introduced: Day one.

    Relevance:  57800/57712.

 5. Problem:    CQ60780 (DCBX) - When both adapter and switch are not willing
                then APP mismatch causes to sequence number flood.

    Change:     Fix the mismatch detection mechanism for APP.

    Introduced: 7.2.0.

    Relevance:  57800/57712.

 6. Problem:    FLR is not functional.

    Change:     Fix the new SWIM6 FLR implementation to look at the valid SWIM
                static data.

    Introduced: 7.2.7.

    Relevance:  All.

 7. Problem:    CQ60095, CQ60750 - System may halt during POST.

    Change:     1. Mask interrupts also on the 2nd port during nvram operations
                   and task switching.
                2. In case VPD needs to be served while SWIM image is currently
                   loaded, it may take too long to service. The change is to
                   service the VPD using another HW IMAGE_LOADER, thus allowing
                   the VPD interrupts and SWIM loading to interleave.
                3. VPD response starvation occur when OS request VPD information
                   on all 4 ports at the same time. Fix the interrupt service
                   order.

    Relevance:  All.

    Introduced: T7.2.

 8. Problem:    Shmem might hold valid MF values for 1G ports,
                causing wrong interpretation that port enables MF
                functionality.

    Change:     Don't copy MAC addresses to shmem mf cfg structure
                if port is 1G.

    Introduced: Day one.

    Relevance:  57800 (2x10G + 2x1G).

Enhancements:
-------------
 1. Request:    CQ59755 - Added a universal license support for an OEM.

    Relevance:  578x0.

 2. Request:    Reduce the amount of debug prints upon FLR handling.

    Relevance:  All.

 3. Request:    CQ60417/CQ60541/CQ60539 (DCBX) - When incoming DCBX packet
                contains a missing TLV (APP, PFC, ETS) then indicate that in
                Local MIB so that driver can control the operational
                configuration.

    Relevance:  578x0.

Version 7.2.7 (Jan 02, 2012)
============================
Fixes:
------
 1. Problem:    CQ60329/CQ60430 - iSCSI/FCOE boot driver is unable to transmit
                since enabling the TX side on the PHY was ignored after driver
                loaded.

    Change:     Allow setting the TX PMD of the BCM8727, even if driver is
                marked as loaded.

    Introduced: 7.2.0.

    Relevance:  BCM57712 + BCM8727.

Enhancements:
-------------
 1. Request:    CQ60538 - New Warpcore microcode available (ver: D109;
                checksum = 0x0229). Issues resolved in this revision are:
                (1) Updated peaking filter equations for KR modes. This
                fix improves BER for backplane modes. (2) Updated
                temperature compensation tables for KR/CL72. This fix
                improves BER for backplane modes.

    Relevance:  578xx-B0.

 2. Request:    Move FLR functionality to SWIM6 in order to save scratchpad
                size on MFW2.

    Relevance:  578xx/57712.

Version 7.2.6 (Dec 29, 2011)
============================
Fixes:
------
 1. Problem:    Version info for 84833 PHY FW was not correctly captured.

    Change:     Use a different PHY register to collect the version info.

    Relevance:  84833 only.

 2. Problem:    CQ60605 - no OOB WOL. In no power state, the link common init
                was constantly called while it was already executed.

    Change:     Avoid calling the link common init in case it was already done.

    Introduced: T7.2.

    Relevance:  57800/57712.

 3. Problem:    CQ60607 - MFW may fail responding on 4-port devices.

    Change:     Increase MT queue size from 8 to 16.

    Introduced: T7.2.

    Relevance:  57840.

 4. Problem:    CQ60085 - MFW will not initialize VIF in following race
                sequence: drv unload -> vif_delete req to switch ->
                drv load -> vif_delete response from switch.

    Change:     Fix flags value to re-initialize vif in this sequence.

    Introduced: Day one.

    Relevance:  NPAR-SD enabled.

Version 7.2.5 (Dec 26, 2011)
============================
Fixes:
------
 1. Problem:    CQ59721 - DCBX does not converge due to seq/ack mismatch.

    Change:     Adapt to the remote peer seq/ack.

    Introduced: Day one.

    Relevance:  57800/57712.

 2. Problem:    CQ60563, CQ50565, CQ60581 - MFW hangs due to stack overflow.

    Change:     1. Increase multi threaded stack size.
                2. Unite DCC & NPAR-SD static structure to one union as they're
                mutually exclusive (to save scratchpad size).

    Introduced: 7.2.4 (when stack size was decreased).

    Relevance:  57810 with 84833 phy.

 3. Problem:    DCBX hangs if transmission fails right after driver sends
                start message.

    Change:     Allow transmission to fail since link can be down.

    Introduced: Day one.

    Relevance:  57800/57712.

Version 7.2.4 (Dec 22, 2011)
============================
Fixes:
------
 1. Problem:    EPIO temperature control will not work in first 255 seconds
                after boot.

    Change:     Added missing timer value initialization.

    Introduced: 7.0.10.

    Relevance:  578xx.

 2. Problem:    CQ60413, CQ60460 - fails to load swim through image loader
                while another nvm operation is performed in parallel.

    Change:     Increase timeout waiting for nvm block read to complete to
                300 milli-seconds.

    Introduced: 7.2.0.

    Relevance:  578xx.

Enhancements:
-------------
 1. Request:    In case of fan failure, keep the PCI memory space enabled and
                do not use the PCI playdead.

    Relevance:  578x0.

 2. Request:    Add support for 57712+84833.

    Relevance:  57712+84833.

 3. Request:    CQ58110 - Support DCC spec version 1.9.

Version 7.2.3 (Dec 15, 2011)
============================
Fixes:
------
 1. Problem:    No link is established at 100M on 57712+84833
                combination. 100Mb force is not supported, and is limiting
                the advertising speed for 84833 firmware version of 1.39 and
                older.

    Change:     1. Modified eLink to advertise 100M support.
                2. Extract the BCM84833 PHY firmware at the common init stage
                   to allow drivers get it on time.

    Relevance:  57712+84833.

 2. Problem:    84833 PHY firmware size has grown to cause timeout
                on initialization. This leads to PHY misconfiguration
                due to PHY register clobbering between software and the
                PHY firmware.

    Change:     Extend firmware initialization timeout period for all ports.

    Introduced: Day one.

    Relevance:  84833 PHY designs with a single SPIROM.

 3. Problem:    CQ58967 - vpd read requests might fail if receiving requests
                for different functions from different ports in parallel.

    Change:     Clear handled vpd request only.

    Introduced: day one.

    Relevance:  57800/57712.

 4. Problem:    CQ60105 - PXE failed to boot on port 2. NIC Initialization
                Failed.

    Change:     Release driver load/unload lock when DMA can not complete
                in time.

    Introduced: 7.0.45.

    Relevance:  57800/57712.

 5. Problem:    CQ59753, CQ60183 - System keeps rebooting after POST.
                The problem occurred due to interrupt that was triggered within
                another interrupt although the interrupts were disabled at that
                stage.

    Change:     Disable interrupts on two levels - the FIO events and the MCP
                CPU twice in a row to avoid race within the CPU pipeline during
                interrupt.

    Introduced: 7.2.0.

    Relevance:  57800/57712.

Enhancements:
-------------
 1. Request:    CQ55211  Low Freq Per Func Eth Stat support on NX2 10G.

    Relevance:  578x0.

 2. Request:    CQ55212  Low Freq Per Func iSCSI Stat support on NX2 10G.

    Relevance:  578x0.

 3. Request:    CQ55213  Low Freq Per Func FCoE Stat support on NX2 10G.

    Relevance:  578x0.

 4. Request:    84833 PHY FW team recommended a few changes when
                configuring the PHY: (1) Use super isolate feature
                when the PHY is no longer use (e.g. unloading driver).
                (2) Bring PHY out of super isolate mode as the last
                step of initialization.

    Relevance:  84833 PHY only.

 5. Request:    Moved three DMAE register initializations out of reset
                condition block to every DMAE operations.

    Relevance:  578x0.

Version 7.2.2 (Nov 28, 2011)
==============================
Fixes:
------
 1. Problem:    No link is established at 100M on 57712+84833 combination.
 1. Problem:    CQ59710 - No link is established at 100M on 57712+84833
                combination. 100Mb force is not supported, and is limiting
                the advertising speed for 84833 firmware version of 1.39 and
                older.
 1. Problem:    CQ59769 - MFW may halt.

    Change:     Modified eLink to advertise 100M support.
    Change:     1. Modified eLink to advertise 100M support.
                2. Extract the BCM84833 PHY firmware at the common init stage
                   to allow drivers get it on time.
    Change:     Update the thread's SWIM stack even if requested SWIM already
                loaded.

    Introduced: Since support of 57712+84833 is introduced.

    Relevance:  577xx, 578xx.
    Relevance:  57712+84833.
    Introduced: 7.2.1.

    Relevance:  578xx/57712

Enhancements:
-------------
 1. Request:    Enable AutoGrEEEn nvram setting to control BCM84833 and
                BCM54616s.

 2. Request:    Re-introduce switch regulator loop gain change for 578xx-B0.

    Relevance:  578xx-B0.

 3. Request:    New Warpcore microcode available (ver: D108; checksum =
                0xB6CF). Improve BER for DFE enabled modes and monotonicity
                for live-link vertical eye diagnostics.

    Impact:     578xx.

Version 7.2.1 (Nov 21, 2011)
==============================
Fixes:
------
 1. Problem:    CQ59658, CQ59692 - OEM feature not operational in ESX.

    Change:     Learn source mac address from ARP and broadcast pkts.

    Introduced: 7.0.0.

    Relevance:  578xx.

 2. Problem:    NCSI FW is modifying Network to Host filtering register for
                multicast IPv6 when receiving NCSI multicast filtering cmd.

    Change:     Take out reference to all Netw->Host filtering register.

    Introduced: 7.0.0.

    Relevance:  57712 and 578xx.

 3. Problem:    mcp reset may fail due to marking validity bit too early

    Change:     Set validity bit only after common init it finished.

    Introduced: 7.2.0.

    Relevance:  57712 and 578xx.

Version 7.2.0 (Nov 15, 2011)
==============================
Fixes:
------
 1. Problem:    CQ59176, CQ58551 - OEM commands being rejected in some corner
                cases.

    Change:     Allow OEM commands processing in any conditions.

    Introduced: Day One.

    Relevance:  57712 and 578xx.

 2. Problem:    CQ58990 - KR link occasionally comes up at 1G when 10G is
                expected. This is exposed only when a previous software
                entity (e.g. MFW, prior to OS driver loading up) that owns
                the KR PHY left it at 1G.

    Change:     Keep auto-neg disabled while configuring the capability
                advertisement. Re-enable it after configuration is done.

    Introduced: Day One.

    Relevance:  578xx blade designs.

 3. Problem:    Checking force-1G may take longer than needed on 57712.

    Change:     MFW will wait on a time based on the chip clock.

    Introduced: 7.0.33 and later 7.0.44.

    Relevance:  57712.

 4. Problem:    CQ59366 - wrong MAC addresses assignment in NPAR mode.

    Change:     Assign data to mf_cfg only after dev_info is set, as now
                mf_cfg of lower functions might be read from dev_info struct.
                Due to that, needed to split PCI configuration to two different
                functions (removed data affected by mf_cfg to another
                function).

    Introduced: 7.0.56.

    Relevance:  57712 + 578xx.

 5. Problem:    MDIO/GPIO HW lock may not be released after simple MCP reset,
                which usually issued by diagnostic tests.

    Change:     Clear any HW lock taken by the MCP on start up.
                The outcome of this will be reflected ONLY after a simple MCP
                reset, which occurred while MCP was taking a HW lock (currently
                only MDIO or GPIO).

    Introduced: 7.0.32.

    Relevance:  57712/578xx.

 6. Problem:    MAC addresses assignment in NPAR block is not initialized
                in non-NPAR mode.  This disallows NCSI OEM commands to
                function correctly in corner cases.

    Change:     Perform MAC addresses assignment in NPAR mode or not.

    Introduced: Day One.

    Relevance:  57712 and 578xx.

 7. Problem:    Accepting NCSI OEM command that has non-zero device number.

    Change:     Reject > 1 device number in package for now.

    Introduced: Day One.

    Relevance:  57712 and 578xx.

 8. Problem:    84833 PHY FW command handler interface requires further
                refinement as they don't seem to work.

    Change:     Made further adjustments and consolidated the command
                handler routine (in anticipation for other commands
                besides auto-grEEEn).

    Introduced: v7.1.1.

    Relevance:  84833 PHY.

 9. Problem:    MCP might halt if failed to load a swim in following cases:
                a. Only partial part of swim was copied to scratchpad.
                b. Failed to fold back to old swim from new swim.

    Change:     For case "a" above, reload swim from nvm.
                For case "b" above, give up and run main loop again.

    Introduced: day one.

    Relevance:  57712 + 578xx.

10. Problem:   There are some race conditions between driver load/unload
                operations and MFW DMA operations.

    Change:     Check DMA transaction status when processing unload/unload
                request; check driver status when pick PFN to do MFW DMA.

    Introduced: 7.0.33.

    Relevance:  578xx.

11. Problem:    Incorrect error handling for SMBUS error in OEM mode.

    Change:     Abort rx message upon SMBUS error.

    Introduced: 7.0.0.

    Relevance:  57800.

12. Problem:    vpd image size field was longer in 4 bytes than its real
                size, causing out of bound request to be handled wrongly.

    Change:     Fix vpd image size calculation.

    Introduced: day one.

    Relevance:  57712 and 578x0.

13. Problem:    CQ59491 - in NPAR-SD mode, vif create is sent with profile name
                even if relevant string in nvm is empty.

    Change:     Don't include profile name in vif create request if string is
                empty (in addition to the value "none").

    Introduced: day one.

    Relevance:  57712 and 578x0.

14. Problem:    CQ57952 - System hangs in POST in case of Fan failure and active
                MBA.

    Change:     MBA cannot detect fan failure, and MFW is disabling the PCI
                "memory enabled" which cause the MBA to hang. The MFW will now
                drop the PCI link to release the system.

    Introduced: Day one.

    Relevance:  57800.

15. Problem:    Request to identify SFP+ module will be delayed by 3ms
                due to failure to acquire MDC/MDIO lock since this command
                is called while driver already has the lock.

    Change:     Avoid taking MDC/MDIO lock during Optic Module Vendor
                Enforcement

    Introduced: 7.0.44.

    Relevance:  57800/57712.

16. Problem:    Intermittent link issue after several load/unload attempts of
                the driver. Problem appeared probably due to MDIO access
                collision between MFW link function and the driver's periodic
                function.

    Change:     Try to acquire the HW lock for up to 1ms during link operation.

    Introduced: 7.0.43

    Relevance:  57712/578xx

17. Problem:    CQ59691 - 12G- Host Network IP lost after network restart with
                OEM mode enabled on W2k8 R2.

    Change:     Fix incorrect setting of NCSI filtering register

    Introduced: 7.0.0.

    Relevance:  57800.

18. Problem:    CQ58185: Reboot test fails with no link detected when NCSI/WoL
                         is enabled.
                CQ59196: System may crash after WoL test.
                CQ59204: Reboot test fails with no link detected when NCSI/WoL
                         is enabled.
                CQ57207: Unable to ping after load-unload test using
                         BCM578xx+BCM84833 board.
                The problem is caused by MDIO contention due to insufficient
                locks between the driver and the MFW.

    Change:     Enable MFW taking MDIO lock without hurting network performance
                by queuing link requests.

    Introduced: Day 1.

    Relevance:  578xx/57712

Enhancements:
-------------
 1. Request:    CQ59191 - Added a universal license support for an OEM.

 2. Request:    Reduce code and debug printouts for HW_SET image support.

 3. Request:    Store latest DCBX tlvs received for OCBB purposes.

 4. Request:    Move vpd handling to ISR.

 5. Request:    Use 578xx-B0 built-in MDIO access work-around instead of
                578xx-A0 work-around.

 6. Request:    New Warpcore microcode (ver: D107; checksum  0x020D).
                Fixed DME acquisition problem when in os8 and PI lane swap.

Version 7.0.56 (Oct 18, 2011)
=============================
Fixes:
------
 1. Problem:    Traffic LED blink rate for 10GBase-T designs is a bit slow.

    Change:     Adjust the slow clock counter in the PHY to increase the
                blink rate.

    Introduced: T7.1.1.

    Relevance:  84823 and 84833 PHYs.

 2. Problem:    CQ58878: When warm booting after upgrading MFW above
                operational driver tools (Windows FwUpg tool, edebug etc),
                MCP might halt causing machine to halt.
                This issue occurs only when upgrading from specific versions
                to other specific versions.

    Change:     Change MFW reset type from one value to bit mask, to enable
                MFW upgrade reason to be set together with other reasons
                Then, relevant fields will be cleared if needed (in this case,
                mgmtfw_state).

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 3. Problem:    CQ58996 - After 20 iterations of reboot test, adapter does not
                dcbx-sync with switch.

    Change:     Perform hard reset to the XMAC during link establishment to
                clear possible left-overs.

    Introduced: day one.

    Relevance:  57810/57800.

 4. Problem:    CQ59277 - Incorrectly link up at 1G in OOB WOL in an OEM
                blade design.

    Change:     If KR enabler has a GPIO assigned, MFW waits until the OEM
                specified time before sampling the GPIO.

    Introduced: 7.0.33 (CQ58097). This change shortens MFW execution time,
                causing GPIO pin sampling done too soon.

    Relevance:  578x0.

 5. Problem:    vif create retry mechanism doesn't work if vif create fails
                for first vif.

    Change:     Send pending driver requests after vif_create response as well,
                in case its return code is error (as then vif_enable won't be
                sent immediately).

    Introduced: day one.

    Relevance:  57712 + 578xx.

 6. Problem:    CQ58884 - possible link issues after unload/load of 1G
                copper ports.

    Change:     Close RX NIG in delay time after resetting the MAC.

    Introduced: T7.0.

    Relevance:  578xx.

 7. Problem:    Possible collision on MDIO bus when accessing PHY registers.

    Change:     Try taking MDIO lock before accessing PHY registers.

    Introduced: Day 1.

    Relevance:  All.

 8. Problem:    Link periodic function runs on port0 only.

    Change:     Run periodic function on both ports of a path.

    Introduced: T7.0.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Add LED functionality to 54618SE PHY based boards.

 2. Request:    Put 84833 PHY in super isolate mode regardless of the
                strapping pin. The PHY stays in this mode until driver
                is loading up.

    Relevance:  84833 PHY only.

 3. Request:    Add 4-port mode HSI support for DCBX.

 4. Request:    CQ59197 - Preserve MACs when switching between SF/NPAR mode.
                When switching from SF mode to MF mode, copy MACs of lower
                functions from SF block to MF block.

Version 7.0.55 (Oct 11, 2011)
=============================
Fixes:
------
 1. Problem:    OEM commands are not responding correctly in some cases.

    Change:     Finetune OEM response per OEM input.

    Introduced: MFW 7.0.1.

    Relevance:  578xx.

 2. Problem:    On 1G copper ports, the RX UMAC is not close to prevent arrival
                of partial segments during link reset process.

    Change:     Close the UMAC and the NIG RX during link reset process.

    Introduced: T7.0.

    Relevance:  578xx.

 3. Problem:    Traffic blink rate LED is too fast.

    Change:     Adjust the blink rate to 578xx clock.

    Introduced: T7.0.

    Relevance:  578xx.

 4. Problem:    MCP halts if one of the SWIMs are missing.

    Change:     Don't halt in such scenario. We already have a mechanism that
                when trying to load a function from missing SWIM, it won't run
                and will return error code.

    Introduced: day one.

    Relevance:  57712 + 578xx.

 5. Problem:    CQ59108: NCSI Set MAC address fails to work for MCAST mac
                address.

    Change:     Allow MCAST and UNICAST mac address for NCSI Set MAC addr cmd.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 6. Problem:    CQ59107: NCSI Enable Multicast filter command standard
                incompliant.

    Change:     When IPv6 Neighbor or Router Advertisement filter is enable,
                other IPv6 mcast packets are also forwarded to BMC by accident.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 7. Problem:    When temperature reporting interval is set to zero from
                beginning, the reporting data area will not be populated.

    Change:     Populate the temperature reporting data area once if reporting
                interval is zero from begging.

    Introduced: 7.0.33.

    Relevance:  578xx.

 8. Problem:    CQ59150: APP mismatch indication is not cleared in Local MIB
                when there is no longer mismatch.

    Change:     Detect that there is no mismatch and clear the flag.

    Introduced: Day one.

    Relevance:  578xx

Enhancements:
-------------
 1. Request:    Move DMA initialization block after checking temperature
                reporting area availability set by Option ROM.

 2. Request:    Add support for HW_SET image. Parse the image upon cstart,
                perform the requested HW operations (R/W registers) for
                this reset type (POR/Core/Hard/MCP reset).


Version 7.0.54 (Oct 04, 2011)
=============================
Fixes:
------
 1. Problem:    CQ58917 - FCoE wwpn/wwnn mac addresses have incorrect prefixes.

    Change:     Calculate extended_cfg_shared image size without CRC bytes, to
                avoid scenario that crc bytes are mistakenly handled as fcoe
                wwpn/wwnn prefixes.

    Introduced: MFW 7.0.52.

    Relevance:  57712 + 578xx.

 2. Problem:    DCBX - enable/disable feature considered remote side settings.

    Change:     Consider only Admin settings for enable/disable feature.

    Introduced: MFW 7.0.53.

    Relevance:  578xx.

 3. Problem:    When disabling FCoE and iSCSI licensing for 1G ports, not all
                counters were cleared.

    Change:     Clear all licensing counters in this scenario.

    Introduced: MFW 7.0.52.

    Relevance:  578xx.


Version 7.0.53 (Sep 28, 2011)
=============================
Fixes:
------
 1. Problem:    CQ58711 - SAN MAC is not configured correctly in OEM setup.

    Change:     Wrong licensing info is being accessed.

    Introduced: MFW 7.0.52.

    Relevance:  57712 + 578xx.

 2. Problem:    CQ56467 - Rejecting some MAC config in OEM commands.

    Change:     Avoid duplicate checking if FCOE/ISCSI is enabled.

    Introduced: MFW 7.0.1.

    Relevance:  578xx.

 3. Problem:    License setting is not correct for OEM.

    Change:     Bypass licensing setting for FCOE support.

    Introduced: MFW 7.0.35.

    Relevance:  578xx.

 4. Problem:    DCBX - Update each feature enable/disable field according
                to remote settings.

    Change:     For symmetric willing copy each feature enable/disable
                field from remote settings.

    Introduced: Day 1.

    Relevance:  578xx.

 5. Problem:    CQ58478 - Nictest A36 failed on the first device in the first
                iteration only.

    Change:     Skip DMA operation in temperature monitoring if PCI-E BME is
                disabled or device is not in D0 power state.

    Introduced: MFW 7.0.33.

    Relevance:  578xx.

 6. Problem:    CQ57909, CQ58416 - driver settings for WoL do not hold.

    Change:     The switch to Vaux was not done while Vmain was present, and so
                a power gap occured and the driver settings were lost.

    Introduced: Day one.

    Relevance:  578xx.

 7. Problem:    Respond ISCSI support in 1G port for OEM command.

    Change:     Take out ISCSI support for 1G port.

    Introduced: 7.0.1.

    Relevance:  57810.

 8. Problem:    In NPAR-SD mode, If VIF is of type FCoE and profile is assigned
                to that VIF, wrong VIF type will be sent to switch in the VIF
                create request.

    Change:     Send correct VIF type in this scenario.

    Introduced: Day one.

    Relevance:  57712 + 578xx.


Version 7.0.52 (Sep 21, 2011)
=============================
Fixes:
------
 1. Problem:    Forced 100M speed cannot pass traffic with 578xx+84833.

    Change:     Configure the Warpcore to SGMII auto-neg when interfacing
                the 84833 PHY.

    Introduced: Day 1.

    Relevance:  578xx + 84833 PHY only, PHY FW v1.27 is required.

 2. Problem:    Cannot establish link with 84833 PHY using PHY FW v1.27.

    Change:     The FW has been changed to fully support super isolate mode.
                That requires the PHY initialization sequence to change.

    Introduced: Day 1.

    Relevance:  84833 PHY, PHY FW v1.27 is required.

 3. Problem:    Access to unsupported NIG register causing NIG error.

    Change:     Don't access NIG MAC_RSV_ERR_MASK register in 57712
                boards, as it's supported since 578xx.

    Introduced: 7.0.51.

    Relevance:  57712.

 4. Problem:    CQ58438 - Enable MC filter to allow ipv6 Neighbor
                Advertisements also allows ipv6 Router
                Advertisements.

    Change:     Add FW filtering to distinguish different MCAST ipv6 pkg.

    Introduced: Day 1.

    Relevance:  57712 + 578xx.

 5. Problem:    CQ58476, CQ58550 - OEM command returns incorrect capability
                on 1G ports of 57800.

    Change:     Fix capability based on chip ID and NVM license.

    Introduced: 7.0.1.

    Relevance:  578xx.

 6. Problem:    FCoE WWN port MAC address calculation according to FCoE MAC
                address was wrong in MF mode.

    Change:     Fix calculation.

    Introduced: 7.0.3 (when generation of WWN MAC according to FCoE MAC was
                added).

    Relevance:  57712 + 578xx.

 7. Problem:    Compatibility issues with extended_dev_info_shared_cfg shmem
                structure.

    Change:     Add size field to shmem2 holding the size of the struct copied
                from NVM to shmem.

    Introduced: 7.0.10 (when extended_dev_info_shared_cfg image was added).

    Relevance:  57712 + 578xx.


Enhancements:
-------------
 1. Request:    CQ58418 - If port is 1G, disable FCoE and iSCSI in the
                licensing published to driver through shmem.

 2. Request:    Access VPD for vendor name for OEM command.

 3. Request:    Set WWN node/port MAC prefix according to new nvm cfg fields.
                If those fields are zeros, keep current implementation
                (prefixes 10:00 and 20:00).

 4. Request:    CQ58584 - NCSI FW will leave the WWPN and WWNN prefix untouched
                to work with enhancement #3 above.

 5. Request:    CQ56720 - Indicate if individual driver is loaded in OEM cmd.


Version 7.0.51 (Sep 07, 2011)
=============================
Fixes:
------

 1. Problem:    CQ58250 - CRC errors in ethernet packets are ignored, and
                packets are processed by the MCP.

    Change:     Configure NIG to notify if there are CRC errors in the packet.

    Introduced: day one.

    Relevance:  57712 + 578xx.

 2. Problem:    DCBX negotiation problems on path 1 because DCBX HSI was
                updated in previous version and backward compatibility was
                broken.

    Change:     HSI was updated to support backward compatibility. Create Local
                MIB extension for extending APP entry array.

    Introduced: 7.0.50.

    Relevance:  57712 + 578xx.
 3. Problem:    CQ59277 - Incorrectly link up at 1G in OOB WOL in an OEM
                blade design.

    Change:     If KR enabler has a GPIO assigned, MFW waits until the OEM
                specified time before sampling the GPIO.

    Introduced: 7.0.33 (CQ58097). This change shortens MFW execution time,
                causing GPIO pin sampling done too soon.

    Relevance:  578xx.

 4. Problem:    CQ58422 - DHCP packets are not passed through to BMC on
                ports 3 and 4.

    Change:     Fix DHCP filtering bug in NCSI for port 3 and port 4.

    Introduced: 7.0.1.

    Relevance:  578x0


Enhancements:
-------------
 1. Request:    Reduce power consumption for 57810 fan failure by
                * Powering down the Warpcore
                * Kill clocks to all driver present blocks
                * Clear BME(Bus Master Enable) and MS(Memory Space)
                Note that if fan failure occurs when using drivers released
                before this date will result in system crash.
 2. Request:    Prevent link flap on 1G copper ports when driver unloads in case
                the PHY is already initialized and link is up.

    Relevance:  57800 + 5461x

Enhancements:
-------------
 1. Request:    Enable HW service for expansion ROM.

    Relevance:  578xx.

 2. Request:    Changed temperature and statistic counter report timer to
                separate timer no. 4 with 200ms period with DMA failure
                fixed.

 3. Request:    Re-enable PCIE hold_off request.

 4. Request:    Add BCM84823 link support for 57712.

 5. Request:    CQ58062 - Allow SR-IOV in switch independent mode.

Version 7.0.50 (Sep 01, 2011)
=============================
Fixes:
------
 1. Problem:    Timer configuration is not working correct for temperature control
                and temperature reporting.

    Change:     Fixed the timer configuration values.

    Introduced: 7.1.1.

    Relevance:  57712 + 578xx.

 2. Problem:    In NPAR-SD mode, rate limit value used was not as required from
                the switch.

    Change:     Fixed the translation equation from Kbps units to 100Mbps units.

    Introduced: day 1.

    Relevance:  57712 + 578xx.

3. Problem:     Driver loading will create a lot warning of TIMER4.

   Change:      Back out the change of using TIMER4 as OCBB timer.

   Introduced:  7.1.1

   Relevance:  57712 + 578xx.


Version 7.1.1 (Aug 30, 2011)
============================
Fixes:
------
 1. Problem:    No link when upgrading from T5.2 bootcode to 6.2.18 or later
                bootcode.

    Change:     The assumption was that all CLP configuration will be sent
                again after reboot and therefore there is no need to clear CLP
                configuration upon upgrade. Apparently, the physical link
                speed CLP is not sent after every reboot and since the shared
                memory location changed, a garbage value was preserved instead
                of the link settings - so it should not be preserved after
                upgrade.

    Introduced: 7.0.18.

    Relevance:  CLP MF only.

 2. Problem:    CQ57053, CQ57182 - Fatal error on interface load, such as
                USTORM (internal processor) FW assert, CCM interrupt or UCM
                interrupt on few boards.

    Change:     The STORM PLL did not acquire lock on some boards if taken out
                of reset only on previous reboot. The fix is to reset the PLL
                and take it out of reset on every reboot.

    Relevance:  Systems that operates on auxiliary power (such as systems with
                WoL enabled or NCSI enabled).

 3. Problem:    MFW might try to pop an empty ftq fifo, due to DCC handler
                mistakenly matching a wrong packet.

    Change:     Mark a packet as DCC match only if its MAC address is
                matching DCC destination MAC address.

    Relevance:  57712 + 578xx.

 4. Problem:    CQ56096 and CQ57073 - NCSI stop responding after 30+ reboots.

    Change:     Ensure a pkt descript is not freed twice. Fix retransmission
                design flaw in corner cases.

    Introduced: Day one.

    Relevance:  57712 + 578xx.

 5. Problem:    CQ57841 - NIG timer error and connection loss after driver is
                loaded.

    Change:     Apply NIG drain when remote fault is detected.

    Introduced: In 1.70.00.

    Relevance:  Fiber ports.

 6. Problem:    CQ57928 - Family Driver Version is incorrect in Windows.

    Change:     Accommodate different format presented to MFW.

    Introduced: 7.0.0

 7. Problem:    CQ57738, CQ57719, CQ55158 - Remote fault detection occasionally
                causes link issues, and traffic problems.

    Change:     Remove remote-fault detection for T7.0.

    Introduced: In 1.70.00.

    Relevance:  Fiber ports.

 8. Problem:    Possible link misconfiguration due to missing lock in the
                periodic function.

    Change:     Try to acquire MDIO lock during periodic function. If failed,
                skip to next periodic iteration.

    Introduced: In 1.70.00.

 9. Problem:    In NPAR-SD mode, VIF will not be recreated after link flap if
                it was deleted and automatically recreated in the retry
                mechanism before the flap.

    Change:     Set appropriate VIF flags when receiving vif_delete request
                from the switch.

    Introduced: In 1.71.00 (when new vif create retry mechanism was added).

 10.Problem:    NVM write fails with image loader enabled.

    Change:     Wait for NVM cmd done signal in NVM write command.

    Introduced: MFW 7.1.0.

 11.Problem:    Forced half duplex link may not be supported.

    Change:     Clear full duplex bit in Warpcore when configuring forced
                link.

    Introduced: Day 1.

    Relevance:  578x0 + 84833, no exposure to 54616S/18SE PHY because it is
                configured as SGMII interface, not XFI.

 12.Problem:    CQ56846 - 84833 PHY has no traffic LED on 10G.

    Change:     Enable LED stretch on a different register offset for 84833.

    Introduced: Day 1.

    Relevance:  84833 PHY.

 13.Problem:    CQ56813 - 84833 PHY can't link up at forced 100M.

    Change:     PHY FW requires setting auto-neg advertisement even at
                forced link mode.

    Introduced: Day 1.

    Relevance:  84833 PHY.

 14.Problem:    84833 can't link up at 10G after the link went down from
                sub-10G.

    Change:     Re-enable 10G advertisement on every driver load instead of
                relying on hardware default.

    Introduced: Day 1.

    Relevance:  84833 PHY.

 15.Problem:    84833 PHY FW command handler interface changed (needed for
                (auto-grEEEn and RJ45 pair swap).

    Change:     Made register offset adjustments to accommodate the new
                interface.

    Relevance:  84833 PHY.

 16. Problem:   CQ57444 - NC-SI Version not correct.

    Change:     Fix cosmetic display problem in version name.

    Introduced: Day one.

 17. Problem:   CQ57582 - in NPAR-SD mode, allocated bandwidth is wrong if
                rate limit value in vif set request is invalid (all 1s).

    Change:     If rate limit is all 1s, use value from NVRAM.

    Introduced: Day one.

18. Problem:    No link after Secondary Bus Reset (SBR) while driver is loaded
                on boards with port swap.

    Change:     NIG port swap configuration was lost after SBR handling.

    Introduced: Day one.

19. Problem:    CQ56969 - PCI-E flow control error when switching from SF to MF
                mode or vice versa.

    Change:     Don't enable flow control check on PCI control register (this
                configuration was removed by mistake lately).

    Introduced: MFW 7.0.24.

Enhancements:
-------------
 1. Request:    Added statistic counter reporting support.

    Relevance:  578xx.

 2. Request:    New PCIE microcode available for 578xx B0 (ver: D201
                updated; checksum = 0x976B).

    Relevance:  578xx Bx.

 3. Request:    Protect periodic DMAE operation to host.

 4. Request:    DCBX: Merge Admin and Remote APP entries to create max 32
                entries in Local MIB.

 5. Request:    DCBX: Change DCBX default Admin values.

 6. Request:    Enable FEC (Forward Error Correction) on 57810-KR.

 7. Request:    Changed temperature reporting's DMA implementation from
                blocking to non-blocking to tolerate long DMA completion
                delay.

 8. Request:    CQ58097 - Disable PCIe GEN3 in case the PCIe FW is invalid.

 9. Request:    Remove NIG_REG_LLH_MF_MODE settings - the driver is setting
                this register since day one in 57712 and 578x0 so there is
                no need for the MFW to handle it.

10. Request:    Add vlan mode support in NPAR-SD mode. If access mode is set,
                mark to driver to strip all vlan values for ingress packets.

11. Request:    Changed temperature and statistic counter report timer to
                separate timer no. 4 with 200ms period.

Version 7.1.0 (Aug 04, 2011)
============================
Fixes:
------
 1. Problem:    After disabling NPAR-SD mode, MCP continues to strip VLAN
                tags from incoming packets, and it causes NC-SI to send
                tagged packets as untagged to BMC.

    Change:     Restore default values to relevant NIG registers during
                nig init.

    Introduced: 7.0.0.

    Relevance:  57712 + 578xx.

 2. Problem:    CQ57330 - Power cycle required after changing nvm cfg 174.

    Change:     Use different NCSI signature for different NCSI flavors.

    Introduced: day 1.

    Relevance:  578xx.

 3. Problem:    578xx-B0 production NICs can not be seen on the system.
                The loop gain change could be browning out the chip.

    Change:     Remove loop gain change for B0 for now.

    Introduced: 7.0.17.

    Relevance:  578xx-B0.

 4. Problem:    NIG drain statistics may not be cleared on the first driver load.
                This may lead to driver warning messages like "NIG timer max".

    Change:     Clear NIG drain statistics when driver requests to load.

 5. Problem:    Temperature reporting checksum fields was not correct.

    Change:     Needs to reverse config and status field before the checksum.

    Introduced: 7.0.28.

    Relevance:  578xx

 6. Problem:    NIG drain timeout was set to 0.66 sec instead of 1 sec.

    Change:     Adjust NIG drain timeout to 1 second using the right clock.

    Introduced: T7.0.

    Relevance:  578xx.

 7. Problem:    The GPHY ports are not completely powered down on
                driver unload if the GPHYs have no external pins to
                bring them to reset state. As a result, their link
                partner may still see link.

    Change:     Put the GPHY in low power mode.

    Introduced: 7.0.0.

    Relevance:  T0000G boards.

 8. Problem:    DCC isn't functional when NC-SI is enabled in NVRAM (29=1).

    Change:     NCSI FW will stop clearing VLAN filter.

    Introduced: T7.0.

    Relevance:  57712 + 578xx.

 9. Problem:    CQ57374 - Some changes to NPAR parameter is not preserved upon
                warm boot.

    Change:     MBA and MFW FW needs to honor the preserve bit set.

    Introduced: 7.0.0.

    Relevance:  578xx.

 10. Problem:   We have been relying on the NVRAM to decide
                different flavors of 578xx. We should use
                OTP setting instead.

    Change:     Take out debug code to bypass OTP.

    Introduced: 7.0.0.

    Relevance:  578xx.

11. Problem:    CQ56891 - 57800 1G-baseT link Led is on without cable connected
                after power up.

    Change:     Reset the 54616/8 PHY during startup to prevent PHY starting
                with wrong configuration.

    Introduced: T7.0.

12. Problem:    CQ57053, CQ57182 - Fatal error on interface load, such as
                USTORM (internal processor) FW assert, CCM interrupt or UCM
                interrupt.

    Change:     In case the board was running on auxiliary power, The STORM
                (internal processor) PLL was taken out of reset while it did not
                have power. The Fix is to take the PLL out of reset only if the
                main power is on after every MCP reset.

    Relevance:  Systems that operates on auxiliary power (such as systems with
                WoL enabled or NCSI enabled).

13. Problem:    Fixed PCIE microcode programming for E3 B0.

    Change:     Load the right image for B0.

    Introduced: 7.0.20.

    Relevance:  578xx.

14. Problem:    MFW tamper driver's loaded port when driver loads port0, and
                management/WoL is enabled on other port/s due to missing AER
                setting in the periodic link function.

    Change:     Add the required AER setting to enable accessing the right lane
                on the periodic function.

    Introduced: 7.0.29.

    Relevance:  578xx.

15. Problem:    CQ57250 - The LED Link light does not turn on at 1Gb/s speed

    Change:     Adjust elink_set_led to allow for correct LED behavior.

    Introduced: Day one.

    Relevance:  578xx with direct connection.

Enhancements:
-------------
 1. Request:    Add remote fault link detection for 578xx based on LSS errors
                in the MAC layer.

    Relevance:  578xx.

 2. Request:    Added 54616 PHY support.

    Relevance:  54616 PHY.

 3. Request:    Added temperature reporting config field in NVRAM for an OEM.

    Relevance:  578xx only.

 4. Request:    Implement new NPAR-SD retry mechanism, according to the new
                spec (3 retries with 2 seconds delay and then 12 retries with
                10 seconds delay).

    Relevance:  NPAR-SD mode only (57712 + 578xx).

 5. Request:    In NPAR-SD mode, retry forever VIF_CREATE after receiving
                VIF_DELETE from the switch.

    Relevance:  NPAR-SD mode only (57712 + 578xx).

 6. Request:    Change DCC configuration to use MAC5 filter in NIG instead of
                MAC3.

    Relevance:  57712 + 578xx.

 7. Request:    Enable Image loader for 578xx in mfw2.

    Relevance:  578xx.

 8. Request:    New Warpcore microcode (ver: D103; checksum 0xDC54).
                Fixed CL72 functionality.

    Relevance:  578xx-B0.

 9. Request:    Enable Gen3 on B0 and A0.

    Relevance: 578xx-B0.


Version 7.0.28 (Jul 25, 2011)
=============================
Fixes:
------
 1. Problem:    No flow-control on 578xx when link is up at 1G and below.

    Change:     Add pause functionality to UMAC

    Introduced: 7.0.0.

    Relevance:  578xx.

 2. Problem:    Temperature reporting config field and status field was
                reversed.

    Change:     Corrected config field and status field position.

    Introduced: 7.0.23.

    Relevance:  578xx.

 3. Problem:    DCC isn't functional.

    Change:     1. If driver wasn't loaded, net manager dcc handler wasn't
                   initialized - initialize it when dcc is initialized.
                2. Change status mask to be only according to destination MAC.
                3. Don't free packet after handled, it is done by net manager.

    Introduced: 7.0.0.

    Relevance:  57712 + 578xx.

 4. Problem:    DCC isn't functional when NC-SI is enabled.

    Change:     Don't use MAC3 in NIG for NC-SI, as it is used for DCC.

    Introduced: 7.0.0.

    Relevance:  57712 + 578xx.

 5. Problem:    CQ57085 - Incorrect setting of first VF of PF for SRIOV in
                4-port mode.

    Change:     Set initvf correctly.

    Introduced: 7.0.0.

    Relevance:  578xx 4-port mode.

 6. Problem:    CQ56294 - Incorrect Remote fault detection may lead to link
                down on 5771x fiber devices.

    Change:     Fix LSS fault mechanism to detect remote fault and transmit
                local fault through the BMAC. This change requires leaving the
                BMAC out of reset in case link of 10G goes down.

    Introduced: 7.0.0.

    Relevance:  5771x-fiber devices (8706/8726/8727), 10G only.

Enhancements:
-------------
 1. Request:    New PCIE microcode available for 578xx B0 (ver: D201;
                checksum = 0xAA1F).

    Relevance:  578xx Bx.

 2. Request:    Disabled statistic counter reporting function before all
                required modules are ready.

    Relevance:  578xx.

Version 7.0.27 (Jul 19, 2011)
=============================
Fixes:
------

 1. Problem:    False link down indication on 57712 when running iSCSI
                reboot test.

    Change:     Ensure that PHY_TX_ERROR_CHECK_FLAG is asserted before error
                checking.

    Introduced: 7.0.8

    Relevance:  57712 and 578xx.

 2. Problem:    In APP mismatch we take Remote settings instead of Admin.

    Change:     When detecting APP mismatch take Admin settings as operational.

    Introduced: Day 1.

    Relevance:  57712 and 578xx.

 3. Problem:    If NC-SI is enabled, NPAR-SD isn't working.

    Change:     1. If NPAR-SD is functional, don't let NC-SI code to configure
                   NIG to filter out VLAN traffic.
                2. Switch NPAR-SD management VLAN_ID in the NIG to VLAN_ID=2,
                   as VLAN_IDs 0 and 1 are for NC-SI traffic.

    Introduced: Day 1.

    Relevance:  57712 and 578xx.

 4. Problem:    CQ56360 - Host is not reported about changes in remote MIB.

    Change:     When detecting any change in remote MIB then notify host.

    Introduced: Not applicable.

    Relevance:  57712 and 578xx.

 5. Problem:    CQ56687 - Traffic LED do not blink under multiple OSes and dim.

    Change:     Enable LED blink and set rate.

    Introduced: 7.0.0

    Relevance:  57712 + 8727.

 6. Problem:    DCC vlan id is taken in both paths according to path0 value,
                because it is taken according to port value only.

    Change:     Fixed as part of enhancement 2 below.

    Introduced: 7.0.0

    Relevance:  57712 + 578xx.

Enhancements:
-------------
 1. Request:    CQ56737 - Disable TX_DIS Signal when SFP+ module is plugged out
                to prevent current leakage.

    Relevance:  578xx.

 2. Request:    Change DCC per port configuration (vlan id) to fit 4 port mode.
                Changed this structure to have 4 instances instead of 2.

    Relevance:  57712 + 578xx.


Version 7.0.26 (Jul 15, 2011)
=============================

Fixes:
------
 1. Problem:    CQ56897 - In NPAR (or NPAR-SD) mode on 4 port device, PMF
                migration isn't working.

    Change:     Update maximum number of PF per port in 4 port mode to 2
                (instead of 1).

    Introduced: Day 1.

    Relevance:  4 port mode devices in NPAR (or NPAR-SD) mode.

 2. Problem:    CQ56950 - When speed is set to 1G on SFP+ device, link may
                fail to come up and system may hang due to incorrect
                initialization of the XGXS mode in the NIG.

    Change:     Fix typo.

    Introduced: 7.0.17

    Relevance:  57712+8727

 3. Problem:    Temperature reporting threshold does not match definition.

    Change:     Changed temperature reporting thresholds based on definition.

    Introduced: 7.0.21

    Relevance:  578xx

 4. Problem:    CQ57067 - Few NCSI doesn't respond correctly in OEM platform.

    Change:     Fix channel ID validation in corner cases.

    Introduced: Day 1

    Relevance:  578xx

 5. Problem:    NPAR-SD per port configuration has only 2 instances, so it
                supports only 2 ports, and not 4 port mode.

    Change:     Have 4 instances of those fields to support 4 port mode. Use
                reserved bits to leave all other fields in same offset, for
                backward compatibility.

    Introduced: Day one

    Relevance:  57840 - 4*10G only

 6. Problem:    CQ57064 - FCOE WWPN/WWNN not derived from FIP MAC.
                in OEM platform.

    Change:     Change FCOE WWPN/WWNN when FIP MAC is modified.

    Introduced: Day 1

    Relevance:  578xx

 7. Problem:    Inability to process NCSI packet lengths above 64 bytes.

    Change:     Allow full length OEM NCSI commands for 578xx-B0.

    Introduced: Day 1

    Relevance:  578xx-B0

Enhancements:
-------------
 1. Request:    Added NIC configuration and statistics data communication
                functionality support.


Version 7.0.25 (Jul 13, 2011)
=============================
Fixes:
------
 1. Problem:    CQ56900 - Incorrect version displayed in ediag/lediag.

    Change:     Fix version display bug.

    Introduced: Introduced in 7.0.24.

    Relevance:  578xx

 2. Problem:    Setting Warpcore registers may be ignored due to missing cycle
                in MDC/MDIO.

    Change:     On 578xx-B0, set free running counter on EMAC before each cl45
                access, and clear it at the end. This is not done globally,
                to prevent clock collisions between the four MDIO masters
                (One per EMAC).

    Introduced: Not applicable.

    Relevance:  578xx-B0.

 3. Problem:    NVRAM changes are not used after reboot on MF CLP mode.

    Change:     To preserve CLP configuration, the nvram content was not
                reloaded until cold boot in MF CLP mode. Since CLP changes only
                the link settings, persevere only it and refresh all other NVRAM
                options.

    Introduced: Introduced in 7.0.18.

    Relevance:  MF CLP mode.

 4. Problem:    CQ56936, CQ56892 - MFW append header does not contain the chip
                ID.

    Change:     Restore chip id to image headers.

    Introduced: Introduced in 7.0.23.

Enhancements:
-------------
 1. Request:    Upgrade Warpcore microcode for 578x0-B0 to D102, CRC 0xAB23.
                Issues resolved in this revision are:
                1) Fixed reset sequence issue in enabling analog clocks.
                2) Fixed live-link diagnostics functionality.

Version 7.0.24 (Jul 11, 2011)
=============================
Fixes:
------
 1. Problem:    FLR process does not block NIG traffic to the PF in NPAR mode.

    Change:     Clear register NIG_REG_LLH[0,1]_FUNC_MEM_ENABLE during PF FLR.

    Introduced: Day one.

    Relevance:  FLR.

 2. Problem:    NVRAM changes are not used after reboot.

    Change:     To preserve CLP configuration, the nvram content was not
                reloaded until cold boot in all modes. The change is to preserve
                the configuration only in MF CLP mode.

    Introduced: 7.0.18.

    Relevance:  All.

 3. Problem:    CQ56515 - When NPAR is disabled via older CCM, the 6 higher
                PCI functions are still exposed though not functional.

    Change:     Older CCM kept nvram option #73 set to NPAR (3) while disabled
                option #114 - in this case, keep higher functions disabled as
                well.

    Introduced: Day one.

    Relevance:  NPAR mode.

 4. Problem:    84833 PHY link does not come up. The extra PHY write to
                the auto-neg register is bringing the PHY to auto-neg
                failure, resulting in constant retry.

    Change:     Remove the extra write to this register when auto-neg is
                enabled.

    Introduced: Day one.

    Relevance:  84833 PHY only.

 5. Problem:    CQ56462 - Unable to get link on both ports on several systems.

    Change:     Initialize warpcore twice in succession.

    Introduced: 7.0.6

    Relevance:  578xx

 6. Problem:    84833 link still comes up at 10G even when configured to
                be forced 100.

    Change:     Disable 10G advertisement.

    Introduced: Day one.

    Relevance:  84833 PHY only, may affect 84823.

 7. Problem:    NPAR per port configuration has only 2 instances, so it supports
                only 2 ports, and not 4 port mode.

    Change:     Have 4 instances of those fields to support 4 port mode. Use
                reserved bits to leave all other fields in same offset, for
                backward compatibility.

    Introduced: Day one.

    Relevance:  4 port mode devices in NPAR mode.

 8. Problem:    NPAR per port configuration read from NVRAM was wrong, so in
                2 port mode, for both paths, configuration read was the one
                written to path 0.

    Change:     Fix as part of the change to 4 instances for 4 port mode
                support.

    Introduced: Day one.

    Relevance:  NPAR mode.

 9. Problem:    Server hangs at POST if the WC image is invalid and expansion
                ROM is enabled.

    Change:     The expansion ROM was advertized but later, if the WC image
                was invalid, the code halted and did not service expansion ROM
                requests.

    Introduced: Day one.

    Relevance:  578x0 Only.

Enhancements
------------
 1. Request:    Support SWIM shadow mechanism. When a SWIM should be loaded,
                load it from group A or from group B, depending on the
                current version of MFW.

 2. Request:    CQ56685 - Add nvm cfg support to Adjust PCIe G2 TX Amplitude
                drive on all Tx lanes on 57712. To maintain backwards
                compatibility, value of zero is disabling the feature (though
                this is a valid value, it cannot be configured).

    Relevance:  57712.

Version 7.0.23 (Jul 3, 2011)
=============================
Fixes:
------
 1. Problem:    CQ56579 - Virtual link is incorrect for OEM command.

    Change:     Modify virtual link up logic to include physical link
                status.

    Introduced: 7.0.0

    Relevance:  578xx.

 2. Problem:    Certain system with temperature control will be powered off
                during running unexpected.

    Change:     After changing temperature threshold from raw data to Celsius
                in NVRAM, the temperature comparison logic was incorrect.
                Reversed temperature comparison logic.

    Introduced: 7.0.20

    Relevance:  578xx.

 3. Problem:    CQ56657 - No link on 57712+8727 when MFW is used with old
                drivers

    Change:     Enable TX PMD when driver issue "LOAD_REQ"

    Introduced: 7.0.20.

    Relevance:  57712+8727.

 4. Problem:    CQ56686 - Unable to ping BMC on channel 03 over OEM interface

    Change:     Fix accidental overwrite of port tag for port 2 and 3.

    Introduced: 7.0.0

    Relevance:  578xx 4-port device.

Enhancements
------------
 1. Request:    CQ56174 - Add AutogrEEEn support to 54618SE PHY.

    Relevance:  578xx.

 2. Request:    Support sharing of PFC configuration between functions
                on the same port.

    Relevance:  MF devices with DCB support.

 3. Request:    Added NIC configuration and statistics data communication
                template support.

 4. Request:    Added support to include microcode for Rev B.

    Relevance:  578xx RevB.

Version 7.0.22 (Jun 29, 2011)
=============================
Fixes:
------
 1. Problem:    MFW might hang on some boards and might cause computer not to
                boot-up.

    Change:     MFW assumed there are always 64 images in the extended dir,
                though nvram programmed by earlier diags contains only up to 32
                images. MFW will check how many images exist and work only on
                those.

    Introduced: MFW 7.0.20.

    Relevance:  57712 + 578xx.

 2. Problem:    CQ56582 - BCM57810 may exhibit link down when connected to KR
                switch.

    Change:     Don't overwrite the value for other reg.

    Introduced: MFW 7.0.19.

    Relevance:  578xx KR.

 3. Problem:    CQ56538 - DCBX: The PFC pause frames being sent have source MAC
                address of 00:00:00:00:00:00.

    Change:     Initialize source MAC address in the MAC

    Introduced: Day one.

    Relevance:  578xx.

 4. Problem:    CQ56593 - DCBX: Sequence number does not increment when
                detecting local change.

    Change:     Ignore changes in incoming packets that contain the same
                sequence number.

    Introduced: Day one.

    Relevance:  578xx.

 5. Problem:    CQ56542 - 578xx MISC timers are expiring too soon.

    Change:     Adjust MISC timer resolution for 578xx.

    Introduced: Day one.

    Relevance:  578xx.

 6. Problem:    Some path1 default nvram configuration may not be reloaded
                after reset due to inaccurate retain address offset end.

    Change:     Fix retain address offset end.

    Introduced: Day one.

    Relevance:  578xx/57712

Version 7.0.21 (Jun 28, 2011)
=============================
Fixes:
------
 1. Problem:    Packet received at any port rather than (path,port)=(0:0) might
                be ignored by MCP without being handled. It happens if another
                packet was received at lower path:port very close to this
                packet.

    Change:     Clear bit NET_EVENTS_MATCH from net_events at net_mgr after
                handled for some port, to enable handling in proper client
                for another ports.

    Introduced: day one.

 2. Problem:    Found a potential problem where some blocks of hardware may
                not work correctly because of power droop while transitioning
                the loop gain. This most likely occurs during power on reset.

    Change:     Added voltage adjustment before and after the transition to
                ensure proper operating voltage for the entire chip. The
                change also limits the accepted loop gain values to default,
                x1, and x2. All other values configured in NVRAM are treated
                as x2.

    Introduced: 7.0.17.

    Relevance:  578xx.

 3. Problem:    CQ56577 - Incorrect Driver Versions returned for NCSI OEM
                command.

    Change:     Translate version to BCD format.

    Introduced: day one.

 4. Problem:    No link on 57712+8727 when used with old drivers.

    Change:     Fix typo.

    Introduced: 7.0.17.

    Relevance:  57712+8727.

 5. Problem:    Packets may be recieved to driver after first driver load
                request and before the driver is completely loaded since MAC
                was not reset in the NIG.

    Change:     Fix typo.

    Introduced: 7.0.5.

    Relevance:  57712.

Enhancements
------------
 1. Request:    Add AutogrEEEn support to 84833 PHY.


Version 7.0.20 (Jun 27, 2011)
=============================
Fixes:
------
 1. Problem:    Fan failure doesn't work when no driver is loaded

    Change:     When fan failure is detected, first reset the phy/SFP+ and only
                then mark the PHY as fault.

    Introduced: T6.4

 2. Problem:    CQ56456 - MCP fatal assert when transmission fails.

    Change:     Remove the assert since transmission can fail.

    Introduced: Day one.

    Relevance:  T0000G boards.

 3. Problem:    CQ55723 - NCSI Set link command to 10G causes link loss.

    Change:     Fix 10G link settings definition.

    Introduced: Day one.

 4. Problem:    CQ56096 - NCSI dies after rebooting for ~30 iterations

    Change:     Add validity check for egress fifo.  Reset egress if failed.

    Introduced: Day one.

 5. Problem:    CQ56305 - machine halts during MFW upgrade performed after DCBX
                is enabled. Happened due to MCP FATAL ASSERT which can happen
                if LLDP SWIM (SWIM5) is invalid (during the upgrade process
                itself).

    Change:     Removed that fatal assert.

    Introduced: MFW 7.0.15 (once LLDP functionality was removed to SWIM).

 6. Problem:    CQ56570 - Set link returns incorrect reason code when linux
                driver is up

    Change:     Fix incorrect reason code.

    Introduced: Day one.

 7. Problem:    When DAC (Direct Attached Cable) is used, there's not actual
                link down event on the far side since transmitter output is not
                disabled.

    Change:     Disable transmitter output when link is disabled.

    Introduced: Day one.

    Relevance:  57712+8727.

Enhancements:
-------------
 1. Request:    Add WC and PCIE microcode support for E3 B0.

    Relevance:  578xx only.

 2. Request:    CQ55206 Provide Temperature update for one OEM.

    Relevance:  578xx only.


Version 7.0.19 (Jun 21, 2011)
=============================
Fixes:
------
 1. Problem:    Need to update T0000G to enable AutogrEEEn by default.

    Change:     Updated T0000G to enable AutogrEEEn by default.

    Introduced: Day one.

    Relevance:  T0000G boards.

 2. Problem:    If mf mode is set to NPAR and NPAR NVRAM image is invalid,
                MFW will hide all functions besides first two. This logics
                is wrong for 4 port mode devices.

    Change:     Leave lower 2 or 4 functions unhidden in this case according
                to board port mode.

    Introduced: Day one.

    Relevance:  4 port boards.

 3. Problem:    CQ56342 - DCBX negotiation fails vs. Brocade switch after
                enabling dot1 and dot3 TLVs.

    Change:     Parse organization defined TLVs according to OUI first.

    Introduced: Day one.

    Relevance:  T0000G boards.

 4. Problem:    Possible code corruption on bios handshake in cases network
                event occurs between challenge and response.

    Change:     Move static data into static area.

    Introduced: Day one.

 5. Problem:    PCI ID mismatch for 578xx devices in MF mode.

    Change:     Check PCI IDs according to list of all optional values,
                instead of former bit check which is wrong for 578xx devices.

    Introduced: Day one.

    Relevance:  578xx devices in MF mode.

 6. Problem:    CQ56297 - MCP assert after last driver unloaded when LLDP is
                enabled.

    Change:     Typo fix when checking about last driver unloaded.

    Introduced: 7.0.15

Enhancements:
-------------
 1. Request:    Add Gen3 specific configuration sequence.

    Relevance:  Boards with Gen3 enabled.

 2. Request:    Honor BAM on KR NVRAM config for 578xx.

    Relevance:  578xx KR only.

 3. Request:    Set STORM clock to 825MHz

    Relevance:  578xx only.

 4. Request:    Add NPAR-SD support to 4 port mode devices.

    Relevance:  578xx NPAR-SD enabled only.


Version 7.0.18 (Jun 15, 2011)
=============================
    Fixes:
    ------
    1.  Problem: CQ58422 - DHCP packets are not passed through to BMC on ports 3 and 4.
Fixes:
------
 1. Problem:    Some functions will not be served in case only one of the ports
                is hidden due to incorrect function hidden check.

    Change:     Ignore actual hidden functions.

    Introduced: 7.0.15.

    Relevance:  All.

 2. Problem:    CQ55133 - Some NIG registers are not restored upon windows reboot

    Change:     Restore few NIG registers upon WARM boot.

    Introduced: 7.0.0.

    Relevance:  Host BMC interface.

 3. Problem:    BMAC loopback failures in NPAR mode when lldp traffic is active.

    Change:     Problem occured because function is marked as disabled in shmem
                by lldp module for NPAR-SD purposes. Function is not changed to
                enabled state because link is not marked as up in shmem in BMAC
                loopback scenario.
                To avoid it, touch DISABLED bit of shmem only when NPAR-SD mode
                is active.

    Introduced: 7.0.0.

    Relevance:  BMAC loopback flows in NPAR mode when lldp traffic is active.

 4. Problem:    An unwanted PCIE serdes read operation was found in loop gain
                switching regulator function, no side effect found yet.

    Change:     Removed the unwanted operation.

    Introduced: 7.0.17.

    Relevance:  All.

 5. Problem:    Need to update references from 54616 PHY to 54618SE.

    Change:     Updated references from 54616 PHY to 54618SE.

    Introduced: Day one

    Relevance:  No functional impact.

Enhancements:
-------------
 1. Request:    Add temperature reporting update interval field to shmem2.

 2. Request:    CQ53686 Add OEM command to get temperature.

 3. Request:    Add elink_84833_hw_reset_phy function.

    Relevance:  84833 PHY based boards.

 4. Request:    CQ53961 - Remove 10Mbps from 84833 PHY. Honor PHY speed
                attributes for 10/100. If the driver is set up to advertise
                only 10M, no speed capability will be advertised. And
                no link will be established.

    Relevance:  84833 PHY based boards.

 5. Request:    Add definition for autogreen in eLink.

    Relevance:  84833 PHY and 54618SE PHY based boards.

 6. Request:    Preserve multi-function CLP configuration across warm reboots.

        Cause:   NCSI is incorrectly filtering DHCP for port 3 and 4.
 7. Request:    CQ56129 - add MF support to 4 port devices. To support that,
                added per port configuration whether MF can be supported
                according to port SERDES interface (MF is supported unless
                mode is SGMII).
                NOTE - ediag 7.0.17 and above is required to support that.

        Change:  Fix filtering for port 3 and 4.
    Relevance:  4 port devices.

Version 7.0.17 (May 30, 2011)
=============================
Fixes:
------
 1. Problem:    CQ55794 - Possible MCP assertion due port lock problem during
                periodic function which runs every 1 second.


    Change:     Call periodic function only if the ports are not locked when
                timer expire.

    Introduced: 7.0.10.

    Relevance:  All.

 2. Problem:    CQ55931, CQ55934 - Switching between NPAR and SF mode
                intermittently results in NPAR malfunction.
                When switching from NPAR mode to SF mode (through the CCM),
                previous MF L2 MAC configuration is preserved and causing NCSI
                not to update the correct flex addresses.

    Change:     Clear NPAR preserved data fields under these cases.

    Introduced: 7.0.0.

    Relevance:  NPAR.

Enhancements:
-------------
 1. Request:    Upgrade Warpcore microcode to D109 (checksum = 0xC563) including
                fixed issue in register default restoration.

 2. Request:    Update PMD settings for 578xx SFI/XFI/DXGXS according to the
                new recommended values.

 3. Request:    Apply loop gain for Vmain and VMgmt switching regulators based
                on NVRAM settings on 578xx.

Version 7.0.16 (May 23, 2011)
=============================
    Fixes:
    ------
    1.  Problem: Possible no link on 578xx SFP+.

        Cause:   Failed reading from SFP+ module EEPROM due to I2C register not
                 returning acknowledge over successful operation.

        Change:  Add work-around of up to 3 retries in case read through I2C
                 failed.

        Impact:  578xx SFI


    2.  Problem: In some cases, only 2 PCI functions are exposed in
                 multi-function mode.

        Cause:   In 57712 the next-function (ARI - 0x25FC) register in the PCI
                 wasn't initialized in multi-function mode for functions 2..7

        Change:  Set the register according to the required configuration.

        Impact:  BCM57712.

    3.  Problem: PFC/APP mismatch condition is not handled properly.

        Cause:   Error is reported when detecting mismatch. ADMIN MIB values
                 were not copied to LOCAL MIB.

        Change:  When detecting mismatch for feature then do not report an error
                 and copy ADMIN MIB values to LOCAL MIB.

    Enhancements:
    -------------
    1.  Request: New Warpcore microcode available (ver: D108; checksum
                 = 0xDE38).

        Change:  1) Added Serdes PLL rate register for forced_speed
                    modes when PLL divider is modified.
                 2) Fix KR link up issues in hardware reset stress
                    tests. This fixes JIRA CRWARPORE-195.

        Impact:  578xx


Version 7.0.15 (May 19, 2011)
=============================
    Fixes:
    ------
    1.  Problem: Inefficient handling for hidden functions (driver pulse and
                 command mailbox is checked in vain).

        Cause:   Wrong masking in validation if function is hidden.

        Change:  Remove unneeded mask in hidden function check.

    2.  Problem: Packets may be passed to host during driver loading sequence.

        Cause:   When first driver is loaded on a port, BMAC is opened instead
                 of closed.

        Change:  Close BMAC when first driver is loaded, so that only the driver
                 will open it when link is up.

    3.  Problem: (CQ55678) NCSI Get NCSI Statistics Command fails with Reason Invalid
                 Payload Length in OEM feature.

        Cause:   Typo in payload length lookup table.

        Change:  Fix lookup table accordingly.

    4.  Problem: (CQ55679) Management fw hangs after sending a specific sequence
                 of NCSI commands with OEM feature enabled.

        Cause:   Sequence ID is not updated properly OEM feature enabled.

        Change:  Fix Sequence ID update accordingly.

    Enhancements:
    -------------
    1.  Request: Add the ability to switch settings from one speed to
                 another in the Warpcore without having to unload the
                 driver.

        Change:  Add a routine to restore the Warpcore register settings
                 back to default. The routine is called before configuring
                 the Warpcore to the desired speed settings.

        Impact:  578xx only.

    2.  Request: Pass LLDP functionality to swappable image, to free
                 scratchpad size.

        Change:  All LLDP functionality, besides very frequent operations
                 (check events and timer handling functions) are moved to new
                 SWIM5.

        Impact:  If LLDP is enabled, on every LLDP message received or sent,
                 it is highly probable that SWIM loaded will be swapped, and
                 it may halt other MCP operations (such as management traffic
                 handling).

Version 7.0.14 (May 17, 2011)
=============================
    Fixes:
    ------
    1.  Problem: In NPAR-SD mode, even if function is marked as FCoE offload
                 supported, VIC_CREATE request is not sent with VIF type of
                 FCoE.

        Cause:   Missing implementation.

        Change:  If function is marked as FCoE offload supported in NVRAM,
                 send VIF type of FCoE in VIF_CREATE request.

    2.  Problem: (CQ55649, CQ55609, CQ55613) Incorrect output for OEM command

        Cause:   NCSI FW doesn't handle some of the corner cases.

        Change:  Fix corner cases accordingly.

    Enhancements:
    -------------
    1.  Request: Add support for dual-flavored MFW

        Change:  Choosing the MFW flavor is done using nvm option 174.

        Impact:  Requires flash size of 8Mb
                 578xx

Version 7.0.13 (May 12, 2011)
=============================
    Fixes:
    ------
    1.  Problem: Wrong link LED when speed lower than 10G on 578xx devices

        Cause:   Incorrect LED mode setting

        Change:  Set correct LED mode setting

    2.  Problem: In NCSI Get Statistics Cmd (0x18), it erroneously show counters
                 being cleared.

        Cause:   Counters Clear field is not initialized correctly.

        Change:  Counter clear field is always set to zero.

    3.  Problem: 578xx isn't powered up in VAUX mode when WoL is enabled

        Cause:   Inaccurate order of power pins setting

        Change:  Fix VAUX settings

    4.  Problem: 578xx exposes 8 functions in non-NPAR mode.

        Cause:   PCI ARI register was left with default configuration

        Change:  Clear the value of the next_function_number of the actual last
                 function in the PCI ARI register

    Enhancements:
    -------------
    1.  Request: Per LSI, change loop gain for Vmain and VMgmt switching
                 regulators from x2 to x1.

        Change:  As requested and added MCP MDIO access routines in the
                 process.

        Impact:  578xx A0.

    2.  Request: Add statistic collection reporiting support.

        Change:  Added statistic collection memory address to shmem2.

    3.  Request: Reserve spot in nvm cfg for switching regulator loop gain.

        Change:  As requested.

    4.  Problem: (CQ55613) OEM command fails to support CH ID == 0x1F

        Cause:   One special OEM command requires might have CH ID == 0x1F,
                 FW fails to anticipate it.

        Change:  Add special case for that OEM command.

    4.  Problem: (CQ55609) OEM command cause FW to hang

        Cause:   One OEM command response can be potentially very long.

        Change:  Add special extra buffer size for such long response, and
                 periodically check for mem overrun.

Version 7.0.12 (May 5, 2011)
============================
    Fixes:
    ------
    1.  Problem: Potential idle-check errors after FLR occurred.

        Cause:   MCP disable the IGU before waiting for acknowledgment from
                 the firmware which may access it in that time.

        Change:  Change FLR sequence to wait first for firmware FLR
                 ACK before disabling the IGU.

    2.  Problem: Potential link issue

        Cause:   Incorrect code alignment led to bad PHY struct initialization

        Change:  Fix PHY struct initialization

        Impact:  Introduced on 7.0.11

    3.  Problem: (CQ55215) First DCBX packet is sent with PFC error.

        Cause:   MCP default configuration is PAUSE instead of PFC.

        Change:  Change default configuration to PFC.

    4.  Problem: Link speed might not be set correctly in NPAR mode.

        Cause:   Pre-boot driver stopped supporting it, so only default speed
                 configuration counts.

        Change:  Remove support for pre-boot link speed setting in NPAR mode.

    5.  Problem: Potential system halt when driver is loaded.

        Cause:   Unicast packets arrive to the BRB when it is in reset, and
                 when driver is loaded, it may crash due to packet counter
                 inconsistency.

        Change:  Set filtering rules only after driver is loaded, and clear
                 filtering rules when the last driver on a port is unloaded.

Version 7.0.11 (May 1, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ54866)  - Vlan ICMP packets to BMC = request timed out.

        Cause:   Bug introduced in last release when checking min pkt size.

        Change:  Allow non-vlag min pkt in vlan mode.

        Impact:  578xx.

    2.  Problem: MDC/MDIO access to Warpcore registers may fail with low
                 probability.

        Cause:   Warpcore PCB controller may get stuck without having MDC free
                 running in the system.

        Fix:     Add work-around for 578xx-A0 by adding another write to the
                 MDIO bus after each MDC access to the Warpcore. This will be
                 fixed in HW for 578xx-B0.

        Impact:  578xx.

    3.  Problem: Warpcore microcode indicates that image CRC is incorrect.

        Cause:   Microcode loading is done in 64bit resolution, so in case
                 Warpcore image is in 32bit resolution, the last dword will not
                 be copied.

        Fix:     In non 64bit resolution Warpcore microcode image, round it, and
                 at the end clear the last dword.

        Impact:  578xx.

    4.  Problem: (CQ54957) - OEM command fails with Response/Reason of 03 7F FF.

        Cause:   Bug introduced in last release when checking for media type.

        Change:  Fix media type checking.

        Impact:  578xx.

    5.  Problem: (CQ54987) -  OEM passthru fails with vlan tag enable

        Cause:   Fail to enable vlan tag filtering upon OEM passthru mode.

        Change:  Fix vlan tag filtering bug.

        Impact:  578xx.

    6.  Problem: Device will not power up after enabling wake-on-lan and
                 powering down the device

        Cause:   Incorrect auxiliary power assignment when WOL setting is changed

        Change:  Fix auxiliary power sequence when WOL/NCSI setting is changed

        Impact:  578xx
                 Introduced in 7.0.8

    7.  Problem  (CQ55101):  - A valid command response for channel 02, 03 on
                 a 2-channel device

        Cause:   When validating the command, max channels was checked instead
                 of the actual number of channels

        Change:  fix number of channels check.

    Enhancements:
    -------------
    1.  Request: Add default TX PMD settings (de-emphasis) for 578xx.

        Change:  Set the TX settings per PMD type (SFI/XFI/DXGXS/KR) according
                 to DVT measurements to achieve optimal link.

        Impact:  578xx.

    2.  Request: Add new structure to store data from driver for NC-SI OEM
                 new commands.

        Change:  Added to shmem2 a field named ncsi_oem_data_addr that holds
                 the scratchpad address of a new allocated structure named
                 ncsi_oem_data. This structure should hold all relevant data
                 from drivers for new NC-SI OEM commands.

Version 7.0.10 (Apr 17, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ54506) - Fail to launch KVM console on OEM platform.

        Cause:   Packet size is incorrectly check with vlan tag.

        Change:  Take into account the vlan tag size when checking packet size.

    2.  Request: (CQ49132) Link seen as up when cable(mostly fiber) is not fully
                 connected.

        Cause :  In this scenario, the physical link is up, while error are
                 detected on the MAC layer.

        Change:  Add periodic check for LSS errors on the MAC layer, since
                 they don't provide indication by interrupt.

        Impact:  Currently only 57712.
                 Note that this fix will not discover a case where one of two
                 wires of fiber cable is plugged out.

    Enhancements:
    -------------
    1.  Request: Support new extended dev_info shared structure mechanism.

        Change:  1. If relevant new NVM image exists, copy its values from nvm
                    to new allocated place in static init. Otherwise, write
                    zeros to all values.
                 2. Mark offset of these values in new field of shmem2:
                    extended_dev_info_shared_addr.

    2.  Request: Add preliminary support for E3+84833 to pass extlb_test. Caveat
                 that both drivers must be loaded at this time to function
                 correctly.

        Change:  As requested

    3.  Request: New PCIE microcode available (ver: D107; checksum
                 = 0xD701).

        Change:  Added fixes for arbitrary rate changes.

        Impact:  578xx

    4.  Request: (CQ53360) Measure chip temprature, and if crossed configurable
                 threshold, set configurable EPIO bits.

        Change:  If temprature is higher than two defined thresholds (fan on
                 threshold and shutdown threshold) for more than 3 consecutive
                 measures (period between measurements is configurable as well)
                 then set values of two EPIOs (configurable).

        Impact:  578xx

Version 7.0.9 (Apr 11, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ54377) When setting mf_mode to NPAR, but MAC
                 addresses in NPAR NVM image are invalid (all zeroes or
                 all ones) - still all 8 functions are visible and invalid
                 MAC addresses are taken.

        Cause:   If mf_mode is NPAR and relevant NVM image exists, NPAR
                 mode is used and addresses are taken from that image.

        Change:  Set mf_mode to NPAR only if MAC addresses in NPAR NVM
                 image are valid. Otherwise, mark only first two functions as
                 visible and anyway don't take MAC addresses from NPAR image.

    2.  Problem: Incorrect SFP+ module power setting

        Cause:   Value was swapped

        Change:  Reverse value to fit board scheme

        Impact:  578xx SFP+ when nvm cfg #160 is set

    3.  Problem: (CQ51066) Link status in port mailbox indicates AUTONEG is
                 disabled and no Serdes.

        Cause:   Link status was zeroed during link down state.

        Change:  Set AUTONEG and SERDES indications when needed.

    4.  Problem: (CQ54341)NC-SI: The FlexAddress does not work when mf mode is
                 set to NPAR, but NPAR is disabled (nvm cfg 73=3,
                 nvm cfg 114=0).

        Cause:   clp_is_mf_mode returns TRUE when mf mode is NPAR, but NPAR is
                 disabled, because the function decided mf_mode according to
                 NPAR capabilities marked in func_ext_config[FUNC_0].func_cfg,
                 and in that scenario this value is set to ENABLED by MBA.

        Change:  Decide whether NPAR mode is used according to
                 func_mf_config[FUNC_0].mac_upper instead of the old check
                 (if MAC is not all 0xffff we are in NPAR mode, otherwise no).

    5.  Problem  (CQ54147): NC-SI SetLink command pause behavior is reversed.

        Cause:   Possible typo in DSP0222 v1.0.0 table 41

        Change:  Can't change the spec, reverse the logic instead.

    6.  Problem: (CQ51937) When programming invalid PCI ID (DID or SID) it
                 affects the PCI configuration instead of keeping the HW
                 defaults.

        Cause:   The CLP exit routine over ride the PCI ID settings without
                 checking if it is valid.

        Change:  Apply the same logic in the initial PCI configuration and in
                 the CLP exit.

    7.  Problem: unload request from driver might arrive while MCP is still
                 pending for former response from the driver. Each of these
                 cases should be handled differently. Those cases weren't
                 handled up to now.

        Cause:   Missing implementation.

        Change:  1. received driver unload while pending for VIF_SET response
                    from driver - send reject response to switch.
                 2. received driver unload while pending for LIST_SET/LIST_GET
                    response from driver - send same request to new PMF. If no
                    new PMF, send reject to switch.
                 3. received driver unload while pending for STATS_ARRAY_GET
                    response from driver - send zeroes in the statistics of
                    that function to the switch (by clearing pending_drivers
                    flag of that function).

    Enhancements:
    -------------
    1.  Request: Enable FLR capability incase bit PORT_HW_CFG_FLR_ENABLED
                 in Port HW configuration in NVRAM is set.

        Change:  As requested

    2.  Request: Handle case that MFW version loaded in scratchpad does not
                 match the SWIM versions stored in the NVM. Such a case can
                 happen after upgrading MFW version through FW upgrade tool
                 (until rebooting the machine).
                 Additional requirements:
                 1. Loaded swim functionality will remain.
                 2. If there is a call to a function from another SWIM -
                    gracefully don't call it (for example: still respond
                    to driver).
                 Yet, functionality of those SWIMs won't be valid until
                 rebooting the machine.

        Change:
                 1. If there is a call to a function from the SWIM that is
                    currently loaded - simply call it.
                 2. If there is a call to a function from a different SWIM -
                    a. Check its CRC and version - if it matches the MFW
                       loaded: load that SWIM.
                    b. Else - don't load the swim (yet, leave loaded SWIM
                       functional), and return the value supplied in case
                       there is an error.

    3.  Request: New PCIE microcode available (ver: D106; checksum
                 = 0x1FAB).

        Change:  1) Added common-clock mode optimizations.
                 2) Sped up acquisition times of Gen3 x1 by 25%.

        Impact:  578xx

    4.  Request: Handle Admin MIB runtime changes for DCBX stack.

        Change:  As requested

    5.  Request: Add 1G support for XFI serdes network interface type of Warpcore

        Change:  As requested

        Impact:  578xx - XFI

Version 7.0.8 (Mar 31, 2011)
============================
    Fixes:
    ------
    1.  Problem: CQ53682 - OEM Command cause NCSI command timeout

        Cause:   If we don't need to forward a BMC packet to anyone,
                 FW failedt to drop it.

        Change:  Drop the pack if no one wants it.

    2.  Problem: Link was not enabled for LLDP during MFW initialization
                 in case LLDP is enabled

        Cause:   LLDP arguments were populated only later in the flow

        Change:  Check if LLDP is enabled directly from the shmem

        Impact:  LLDP

    3.  Problem: AUX power scheme may not work correctly

        Cause:   Incorrect register setting

        Change:  Set the sel_vaux_b as it should be

    4.  Problem: (CQ51776) when in NPAR mode but NPAR is disabled, if performing
                 hot plug for a device, all 8 functions are seen instead of only
                 2 (and 6 should be hidden).

        Cause:   1. Missing implementation to mark functions as hidden in
                    case they are marked as disabled in NPAR NVM image.
                 2. In mf_mode, hiding PCI function was performed only in
                    clp_exit.

        Change:  1. Add missing implementation as described in #1 above.
                 2. Don't automatically mark all functions as not hidden in
                    case mf_mode is active.

    5.  Problem: (CQ52895) No traffic on NCSI

        Cause:   NIG Drain was not cleared

        Change:  Clear NIG Drain after link is up

        Impact:  578xx

    Enhancements:
    -------------
    1.  Request: Add AUX power scheme for 578xx

        Change:  As requested

Version 7.0.7 (Mar 29, 2011)
============================
    Fixes:
    ------
    1.  Problem: DCBX counters mismatch when performing driver unload
                 (problem is only on the other path, not the one on
                 which driver unload occured).

        Cause:   When external phy is used, it is not reset when MCP resets
                 internally the mac. Therefore, remote side is not noticed
                 regarding the link toggling (problem is only on the other
                 path, not the one on which driver unload occured).
                 Due to that, only host resets DCBX counters, and remote
                 side keeps on increasing old counters.

        Change:  Reset the link whenver initializing the phy (including
                 when last driver is unloaded).

    2.  Problem: MCP may halt on VIRT_MAC_PRIM BIOS command

        Cause:   MFW may enter infinite loop of keeping calling PHY
                 initialization

        Change:  Prevent executing VIRT_MAC_PRIM command in case another link
                 command is still executed
                 when last driver is unloaded).

    3.  Problem: Warpcore would be linked even if driver was not loaded

        Cause:   Warpcore lanes were not in reset after power cycle

        Change:  Put Warpcore lanes into reset during common init phase

    4.  Problem: (CQ53704) Diag Fails the D01 Test when testing in NPAR mode in
                 20G

        Cause:   NPAR didn't supported 20G

        Change:  Extend NPAR to support 20G as well.

        Impact:  57840 - NPAR with 20G

    5.  Problem: (CQ53751) One of the OEM commands is not working properly

        Cause:   There is a timing issue when MAC Address info is being accessed.

        Change:  Allow MAC addresses being accessed any time.

    6.  Problem: (CQ53215) When speed is set to 20G, link may toggle or remain
                 down following other port link change.

        Cause:   Warpcore issue (Lane swap wasn't taken into account when
                 operating on div16 clock gater)

        Change:  New Warpcore microcode.

    7.  Problem: in 4 port mode, vpd handling for functions of port 1
                 (in both paths) is not working.

        Cause:   vpd_handling function read wrong bit in vpd latched register
                 for port 1 functions. Due to that, it didn't perform right
                 PCI configuration operations to supply response to the OS.

        Change:  Read right bit in vpd latched register (taking into account
                 port id).

        Impact:  4 port mode only.

    8.  Problem: NPAR-SD responses might be dropped and not handled, after
                 receiving out of order responses from the switch.

        Cause:   Per message FSM was cleared when receiving response from the
                 switch without checking that the response arrived is matching
                 the last request sent. Then, when the correct response arrived
                 it wasn't handled because FSM was cleared.

        Change:  Clear per message FSM only if received response matching the
                 last request type sent to the switch.

        Impact:  NPAR-SD mode only.

    9.  Problem: (CQ53996) When NCSI is used with specific filtering rules such
                 as VLAN, ARP and DHCP, the host will hang if NCSI traffic was
                 received before the OS driver is loaded.

        Cause:   If packet passes specific filtering rules, NIG is configured
                 to try to route it to the host, but since that path in the
                 chip is not powered, the packet will not be queued for the
                 host - and the pointers in the NIG block will have wrong data.

        Change:  Don't configure NIG to pass all traffic requested by the MCP
                 to the host as well (leave it for driver to configure that).

    10. Problem: (CQ54076) PCIe Serial Number is incorrect.

        Cause:   The serial number is based on the MAC address, but the lower
                 and upper parts of the address were mixed up.

        Change:  Reverse the order of the MAC address parts in the serial
                 number.

        Impact:  Introduced in 6.2.5.

   11.  Problem: MCP expects a response from the driver for NPAR-SD commands
                 that were sent before driver was unloaded for the last time.

        Cause:   drv_status in function mailbox was cleared only when
                 receiving response from driver. Yet, if driver was unloaded
                 before response was sent to MCP, that bit will never be
                 cleared.

        Change:  Clear pending NPAR-SD requests from function mailbox when
                 receiving driver unload request from driver.

        Impact:  NPAR-SD enabled boards.

   12.  Problem: (CQ52000 & CQ51697 Cont.) XAUI short detection mechanism only
                 applies to 10G.

        Change:  Remove 1G XAUI short detection.

        Impact:  8727 and 8706 PHYs.

    Enhancements:
    -------------
    1.  Request: Sample force 1G signal at least 150ms after POR/resets

        Change:  As requested

    2.  Request: Honor GPIO configuration values on Tx laser control, on top
                 of existing EPIOs.

        Change:  As requested.

        Impact:  578x0 SFP+ designs.

    3.  Request: Link support for 57810 + 84833B0PHY.

        Change:  As requested.

        Impact:  57810 + 84833B0PHY combination can pass traffic for
                 testing.

    4.  Request: CQ53687 - Enable/disable WOL via NCSI OEM command.
                 CQ53682, CQ53683, CQ53675, CQ53676 - NCSI  various Get/Set OEM commands.

        Change:  Allow enable/disable WOL in nvm via NCSI OEM command.
                 CQ53682, CQ53683, CQ53675, CQ53676 - Allow Get/Set various parameter via OEM commands.

        Impact:  578xx

    5.  Request: Add SGMII support for a specific OEM design.

        Change:  Clear signal detect and configure internal PHY before
                 BCM54618SE establishes link.

        Impact:  SGMII ports of 57800 only.

    6.  Request: (CQ52000 & CQ51697) Short on XAUI lanes on the MAC side of
                 8727 and 8706 PHYs needs to generate link down event.

        Change:  Tx fault detection has been added. In addition link
                 qualification includes checking for Tx fault. The fault
                 detection bit is read twice to clear any stale value.

        Impact:  8727 and 8706 PHYs.

    7.  Request: Service EXP_ROM calls within interrupt rather than polling

        Change:  Change EXP_ROM from event handling to interrupt handling to
                 allow fast service, even during SWIM load.

    8.  Request: Enable CL37 1G parallel detect

        Change:  As requested.

        Impact:  578xx KR.

    9.  Request: New Warpcore microcode available (ver: D106; checksum
                 = 0x817C).

        Change:  1) Cl72 clock fix takes lane swap into account. This fixes
                    JIRA CRWARPCORE-180 (cl72 related div16 clock fix needs
                    to take lane swap into account). The clock fix requires
                    the lane swap configuration to be done before the firmware
                    is loaded.

        Impact:  578xx

   10.  Request: Add drv_flags to shmem2 for driver-MCP HSI. Specifically added
                 flag for DCB_CONFIGURED (to be controlled by the driver).

        Change:  As requested.

   11.  Request: New PCIE microcode available (ver: D105; checksum
                 = 0x9400).

        Change:  1) Added CDR fixes for receive jitter tolerance.
                 2) Added debug writes to aid in Equalization debug.

        Impact:  578xx

    12. Request: Invert OPTRXLOS signal on SFP/XFP interface for 578xx

        Change:  As requested.

Version 7.0.6 (Mar 09, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ52793) NCSI reject some of the OEM commands.

        Cause:   Lack of code space to support such features.

        Change:  Make some of the OEM commands processing swappable

        Impact:  BCM57712 and BCM578xx

    2.  Problem: Default FCoE MAC assignment (according to iSCSI MAC address)
                 is wrong (fcoe_fip_mac_upper starts wrongly with 0x30).

        Cause:   Bad logics in the function load_dev_info
                 (usage of "|=" instead of "|").

        Change:  Fix logics according to required behavior.

        Impact:  Introduced in 7.0.3.

    3.  Problem: (CQ553397) Value of all zeroes for address is returned for
                 OEM NCSI Comamnd.

        Cause:   NCSI FW is returning what's in NVRAM verbatimly.

        Change:  Change to return default address when nvram has zero values.

        Impact:  BCM57712 and BCM578xx

    4.  Problem: (CQ53337) - Max size (1522) VLAN packets are not being passed
                 through to BMC.
        Cause:   Packet checking hasn't taken into account extra NPAR-SD header,
                 so packet was considered too long

        Change:  When checking RX packet size, take into account additional
                 NPAR-SD header

        Impact:  BCM57712 and BCM578xx

    5.  Problem: MCP halts rarely when performing ifconfig up in NPAR-SD mode.

        Cause:   vic_pdu_decode function tries to run NULL pointer function.
                 That should happen only if receiving totally unexpected
                 (but with valid structure) NPAR-SD management packet from the
                 switch (such as messages that should only be sent from host
                 to switch).

        Change:  If such a scenario happens, reject the packet (if it is a
                 request) or drop it (if it is a response).

        Impact:  NPAR-SD mode only.

    6.  Problem: DCBX packets are not sent periodically in case no drivers are
                 loaded and in NPAR-SD mode.

        Cause:   Timer value was not checked in hold state.

        Change:  Check timer value in hold state if in NPAR-SD mode, and if
                 expired: send periodic DCBX packet.

        Impact:  NPAR-SD enabled boards.

    7.  Problem: NPAR-SD: Sometimes VIF_CREATE request is not sent for a
                 loaded driver.

        Cause:   Link was toggled while VIF was in rejected state (due to
                 reject response from switch to last VIF CREATE request),
                 and that state was not cleared - so new request was not
                 sent.

        Change:  Clear rejected state when link is toggled or when driver
                 is unloaded.

        Impact:  NPAR-SD enabled boards.

    8.  Problem: (CQ53482) Driver/diag nvm operation failed because nvm
                 was locked by MCP.

        Cause:   MCP tried to load SWIM while nvm was locked by driver.
                 Even though it failed, it didn't clear its arbitration bit,
                 so since then driver was not able to access nvm as well.

        Change:  1. Clear MCP arbitration bit if failed to get nvm lock.
                 2. Increase retry time to gain nvm lock to 40ms.

        Impact:  5771x and 578xx boards.

    9.  Problem: time periords calculated by the MCP (for timeouts,
                 delays etc.) was wrong for 577xx boards.

        Cause:   Time periods are calculated according to processor
                 frequency, which is different in 577xx boards.

        Change:  Define frequecny properly, according to board type.

        Impact:  578xx boards.


    Enhancements:
    -------------
    1.  Request: Translate 10G-Force KR and 1G-Force KR to autoneg with
                 advertisement of 10G and 1G in accordance

        Change:  As requested.

        Impact:  578xx KR interface

    2.  Request: Support NVRAM configuration of EPIO assignment on Tx
                 laser control.

        Change:  As requested.

        Impact:  578xx SFP+ interface, existing boards with this parameter
                 unconfigured should still work using hardcoded default EPIO.

    3.  Request: New PCIE Gen3 microcode available (ver: D104; checksum
                 = 0xAEC8).

        Change:  1) Assert coarse_lock immediately after cdr lock.
                 2) Hold off old sequencer till GenIII setup is undone.

        Impact:  578xx

    4.  Request: Add initial support for 1G over fiber

        Change:  As requested.

        Impact:  578xx fiber

    5.  Request: (CQ#50798) Add support for BCM8722

        Change:  As requested.

    6.  Request: New Warpcore microcode available (ver: D105; checksum
                 = 0x0726).

        Change:  1) Added support for channel longer than KR specification.
                 2) Added auto-selection of VddR/Bandgap modes.
                 3) Improved robustness of PMD restart sequence.

        Impact:  578xx

    7.  Request: Temperature monitoring.

        Change:  1) Setup silicon for temperature monitoring.
                 2) Return temperature upon NCSI OEM command.

        Impact:  578xx

Version 7.0.5 (Feb 22, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ52417), (CQ52845) Flow control doesn't work for 20G

        Cause:   Flow control wasn't enabled for 20G

        Change:  Set flow control on 20G according to settings

        Impact:  57840 20G

    2.  Problem: (CQ52684) NCSI connection timeout when mapping a network drive over it.

        Cause:   FW tried to reprocess same packet, thus removing packet in an empty FTQ.

        Change:  Add checks for such condition.  Add logic to avoid reprocessing
                 same packet.

        Impact:  BCM57712 and BCM578xx

    3.  Problem: 10G-KR doesn't link up on an OEM design.

        Cause:   CL72 should not be disabled in KR environment.

        Change:  Removed codes that disables CL72.

        Impact:  578xx 10G-KR

    4.  Problem: link speed detailed in shmem was wrong in NPAR and NPAR-SD
                 modes, if copied from NVRAM by MFW (and not by MBA).

        Cause:   Wrong implementation.

        Change:  Fix logics.

        Impact:  BCM57712 and BCM578xx in NPAR or NPAR-SD modes.

    5.  Problem: (CQ52922), (CQ52510) System halt after upgrading MFW

        Cause:   MCP reset which followed MFW upgrade was treated like POR,
                 which trigger changing PCI configuration, led to problem in
                 accessing the bar of the device

        Change:  When MCP reset occurs after MFW upgrade, treat it like simple
                 MCP reset, yet clear only required field.

    6.  Problem: (CQ52920), (CQ52973), (CQ52903) NIG interrupt ADDRESS_ERROR
                 bit is set after loading first driver when MCP link is up
                 (causing idle_chk to fail both in ediag/edebug and in
                 ethtool -t).

        Cause:   Write to NIG MAC registers of 57712 even if device is 5778x.

        Change:  Write to correct NIG MAC registers, according to board type.

        Impact:  BCM578xx devices.

    7.  Problem: (CQ52969) - NCSI: several NCSI tests timing out/failing

        Cause:   Incorrect translation to MCP address for command
                 GET_CONTROLLER_PACKET_STATICTICS

        Change:  Use correct macro to translate HSI to MCP address.

        Impact:  BCM57712 and BCM578xx.

    8.  Problem: Warpcore microcode CRC check does not match.

        Cause:   MFW does not wait for program memory initialization
                 completion.

        Change:  Add a wait loop to wait for completion.

        Impact:  BCM578xx.

    9.  Problem: When resetting/disabling link in 578xx boards output
                 for TX PAUSE signal to the MAC is not disabled.

        Cause:   Relevant register in the NIG is not cleared when link
                 is disabled.

        Change:  Set value to 0 in that register if link is disabled.

        Impact:  BCM578xx.

   10.  Problem: BCM578xx may misconfigure the link on some OEM designs.

        Cause:   ELink determines 4-port mode strictly from the input pin,
                 not from override register that MFW always configures.

        Change:  Changed to determine the 4-port mode by reading the
                 override register.

        Impact:  BCM578xx.

    Enhancements:
    -------------
    1.  Request: (CQ#52659) Add PCIE gen1/gen2 pre-emphasis value programming
                 on E3.

        Change:  As requested.

    2.  Request: (CQ52000 Short on XAUI lines between Everest 2 and 8727 PHY
                 needs to generate link down event.

        Change:  Tx fault detection has been added. In addition link
                 qualification includes checking for Tx fault.


    3.  Request: New Warpcore microcode available (ver: D104; checksum
                 = 0x3C3A).

        Change:  1) Added workaround for distorted vertical eye diagnostics.

        Impact:  578xx

    4.  Request: Disable PCIE microcode loading when Gen3 is not enabled.

        Change:  As requested.

        Impact:  578xx

    5.  Request: Add swappable image #4 (SWIM4)

        Change:  As requested

Version 7.0.4 (Feb 08, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ52803) Pass through fails after a warm reboot with MFW code.

        Cause:   Packet filter was reset every boot

        Change:  Set packet filter only on cold boot

    2.  Problem: func_cfg was not copied from NVM to shmem in NPAR and NPAR-SD
                 mode.

        Cause:   Wrong implementaion.

        Change:  Copy value from NPAR and NPAR-SD images to write shmem value,
                 according to mf_mode used.


    Enhancements:
    -------------
    1.  Request: Strip inner vlan automatically when entering NPAR-SD mode, for
                 correct logics of NC-SI in NPAR-SD mode.

        Change:  Change NIG configuration as requested.


Version 7.0.3 (Feb 07, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ52544) Shmem signature , MCP is not up error message when
                 enabling NCSI on 57712.

        Cause:   NCSI FW is not checking all different device ID for 57712.

        Change:  Accept more device ID.

        Impact:  BCM57712 boards.

    2.  Problem: NPAR-SD STATS_ARRAY_GET request is discarded if VIFs for
                 which it is requested are not set.

        Cause:   Code had no support for that case.

        Change:  Response with all counters set to 0 in case of such request.

        Impact:  BCM57712 NPAR-SD enabled boards.

    3.  Problem: (CQ52213), (CQ52423) DCBX packets with NPAR-SD relevant  TLV
                 were sent even if NIC is not in NPAR-SD mode according to
                 NVRAM param. That also caused DCBX packets to be sent even
                 if DCBX is disabled and NIC is not in NPAR-SD mode.

        Cause:   Wrong implementation in lldp FSM.

        Change:  Send NPAR-SD related TLV only if NIC is in NPAR-SD mode.

        Impact:  BCM57712 boards.

    4.  Problem: (CQ52425) DCBX failed negotiation during Boot from SAN.

        Cause:   Wrong implementation in lldp FSM, that didn't handle message
                 from driver in RUN state.

        Change:  Restructure lldp FSM. Currently moving to RUN state only when
                 receiving message from driver, and in HOLD state that message
                 will be handled and DCBX negotiation will init.

        Impact:  BCM57712 boards.

    5.  Problem: NPAR-SD management traffic was dropped and not arrived to MCP,
                 causing NPAR-SD to be not functional.

        Cause:   NPAR-SD management traffic was filtered according to LLDP MAC
                 address, but that filter was removed lately.

        Change:  Add NIG configuration to accept packets with NPAR-SD
                 management ethernet type, when packet includes NPAR-SD
                 tag + vlan + LLC/SNAP.

        Impact:  BCM57712 NPAR-SD enabled boards.

    6.  Problem: Incorrect autoneg flow control resolution when using KR with
                 autoneg speed.

        Cause:   flow control resolution was ignored since autoneg was not
                 considered to be completed.

        Change:  Indicate autoneg to be completed

        Impact:  BCM578xx

    7.  Problem: MCP hangs in NPAR-SD functions, even though mf mode is not
                 NPAR-SD.

        Cause:   driver load and driver unload entered NPAR-SD sequences even if
                 NPAR-SD mode is not set.

        Change:  Enter to NPAR-SD related flows only if mf mode is set to
                 NPAR-SD.

        Impact:  BCM57712 + BCM8073 boards.

    8.  Problem: (CQ52308) NCSI packets are not passed from network to BMC.

        Cause:   Incorrect MCPQ is popped.

        Change:  Pop MCPQ based on port and path.

        Impact:  BCM57712 boards.

    9.  Problem: (CQ52684) E3: NCSI connection timeout when mapping a network
                 drive over it.

        Cause:   A typo in FW was introduced in previous release.

        Change:  Change = to |= in NCSI FW.

        Impact:  BCM57712 + BCM8073 boards.

   10.  Problem: (CQ52736) values read by ediag from shmem are wrong
                 after POR.

        Cause:   init_mf_cfg function returned wrong value, and caused
                 load_dev_info function to skip insertion of values to
                 shmem from NVM.

        Change:  Fix logics.

        Impact:  BCM57712 + BCM8073 boards.

  11.   Problem: MCP might enter to infinite loop in some NPAR-SD flows.

        Cause:   NPAR-SD assert was implemented as infinite loop.

        Change:  Change assert implementation to an mcp error trace.

        Impact:  BCM57712 NPAR-SD enabled boards.

  12.   Problem: NPAR-SD flows start even if relevant NVM images are missing.

        Cause:   Entered to NPAR-SD according to mf_mode in NVM, and didn't
                 have a check if relevant NVM images exist.

        Change:  Validate that relevant NVM images exist before entering to
                 NPAR_SD mode.

        Impact:  BCM57712 NPAR-SD enabled boards.

  13.   Problem: Link change message from driver did not arrive to MCP.

        Cause:   Wrong definition from which MCP version that feature is
                 supported caused driver not to send that message.

        Change:  Define that MCP can handle that request from MFW version
                 7.0.2 and advanced.

        Impact:  BCM57712 + BCM8073 boards.

  14.   Problem: (CQ52566) DCBX not responsive when NCSI is enabled

        Cause:   NCSI protocol hijack by mistake DCBX related frames

        Change:  Fix NCSI filtering rules to avoid DCBX/LLDP frames

    Enhancements:
    -------------
    1.  Request: Don't send VIFSET_REQ to driver when link is turned down in
                 order to disable those interfaces, as driver knows anyway link
                 was toggled.

        Change:  As requested.

    2.  Request: (CQ52450) Copy all NPAR-SD & NPAR parameters from NVRAM to
                 shmem (both per port and per func parameters), if that mf_mode
                 is active.

        Change:  Restructure init_mf_cfg function, and add that functionality
                 in a new function added.

    3.  Request: If any of 3 FCOE MAC addresses is all zeros, change it to a
                 default value according to following logics:
                 a. If FCoE MAC is all zeroes, FCoE MAC is same as iSCSI MAC
                 b. If WWPN is all zeroes, then configure it as 20:00:<FCoE MAC>
                 c. If WWNN is all zeroes, then configure it as 10:00:<FCoE MAC>

        Change:  As requested, whteher if in MF mode or SF mode.

    4.  Request: Disable NPAR-SD mode for devices in 4 port mode.

        Change:  As requested.


Version 7.0.2 (Jan 26, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ52149) Admin MIB not copied to Local MIB when DCBX is disabled.

        Cause:   DCBX state changed to DISABLED on the first update.

        Change:  Stay in HOLD mode in order to receive more updates.

        Impact:  BCM57712 + BCM8073 boards.

    2.  Problem: (CQ52180) APP TLV contains swapped bytes in APP ID field.

        Cause:   Bytes are not swapped before transmission and after reception.

        Change:  Swap APP ID on the MIB itself and treat incoming/outgoing packets
                 regularly.

        Impact:  BCM57712 + BCM8073 boards.

    3.  Problem: (CQ52080, CQ52105) NCSI overrun LLDP MAC configuration of LLH.

        Cause:   After NIG reset/restore NCSI overrun LLDP MAC configuration of LLH.

        Change:  Configure LLH to filter LLDP packet based on LLDP Ethernet type
                         alone.

        Impact:  BCM57712 + BCM8073 boards.

    4.  Problem: Reading from NIG FIFO with wrong offset in E3.

        Cause:   Did not consider HiGiG reserved place in offset calculation.

        Fix:     Consider the HiGiG reserved place in offset calculation.

        Impact:  BCM578xx

Version 7.0.1 (Jan 25, 2011)
============================
    Fixes:
    ------
    1.  Problem: (CQ52308) NCSI packets are not passed from network to BMC.

        Cause:   a. NPAR-SD entity configured LLH registers in contradiction to
                    NCSI configuration.
                 b. Build date is not always updated.  That caused NCSI internal
                    data structure not get reset upon each FW upgrade.
                 c. No packets are forwarded to MCP.
                 d. Missing parentheses caused NCSI to DMA 0 bytes.
                 e. Same packet is processed multiple time by NCSI FW.

        Change:  a. Don't perform NPAR-SD related manipulation unless really
                    NPAR-SD mode is set.
                 b. force BC1 recompilation to make sure "build date" is updated.
                 c. VLAN filter is not correctly configured.
                 d. Put in missing parentheses in NCSI FW.
                 e. When NCSI FW is busy, Network manager will not request NCSI
                    to look at a packet.

        Impact:  BCM57712 boards.

    2.  Problem: VIF parameters changed in switch side while VIF was already up
                 do not take effect.

        Cause:   VIF_SET request is ignored if it's UP/DOWN/ENABLE/DISABLE state
                 did not change according to current known VIF state in MCP.

        Change:  Send VIF_SET request to driver with new parameters even if
                 state remained.

        Impact:  BCM57712 NPAR-SD enabled boards.

    3. Problem:  578xx unable to link after unload-load sequence.

       Cause:    Incomplete reset sequence

       Change:   Fix reset sequence

       Impact:   578xx

    4. Problem:  (CQ50511) (continuation) - The PCIE pre-emphasis NVRAM
                 configuration value is not reflected in some OEM designs.

       Cause:    The condition check required is not working as expected.
                 Thus, the value is applied in the incorrect place.

       Change:   Ignore the condition check and apply the same value in
                 two different places.

    5. Problem:  (CQ52341) IP communication lost for multiple packages in VAUX mode.

       Cause:    HW arbitration register is configured before Package ID is assigned.

       Change:   Assign package ID before Initializing HW registers.

    6. Problem:  57800 GPHY port (SGMII) LEDs don't work.

       Cause:    The LED setting routine is called only on 10G link.

       Change:   Call the LED setting routine even for non-10G link.

       Impact:   578xx.

    7. Problem:  MCP is halted when trying to send LLDP packet while link goes
                 down.

       Cause:    MCP is stuck in infinite loop while waiting to TX FIFO to be
                 ready.

       Change:   Remove infinite loop, and fix the timeout of waiting for the
                 TX FIFO.

    8. Problem:  (CQ52456) In some cases, only 2 PCI functions are exposed in
                 multi-function mode.

       Cause:    In 578xx there is additional register to set to expose all 8
                 functions.

       Change:   Set the register according to the required configuration.

       Impact:   578xx.

    9. Problem:  (CQ52212) 8073PHY intermittently exhibits signs of disconnected
                 devices upon loading/unloading.

       Cause:    Microcontroller and Driver both controlling XAUI Low Power
                 Mode.

       Change:   Remove Driver control of XAUI Low Power Mode.

       Impact:   8073 PHY based boards.

   10. Problem:  (CQ51624) PHY TXONOFF_PWRDN_DIS bit set to "1" instead of default
                 0 to prevent reset & power down of PHY.

       Cause:    When GPIO controls TX Laser on 8727 and 8706, turning off laser
                 will put PHY in low power mode.

       Change:   Set TXONOFF_PWRDN_DIS accordingly.

       Impact:   8727PHY and 8706PHY based boards with TX laser controlled by
                 GPIO_0.

   11. Problem:  Unable to link second 20G-DXGXS port if first port is not
                 loaded

       Cause:    The second port(lanes 2,3) receive clock from the lane 0. By
                 default, the Warpcore is configured to 1G, so the clock it
                 provided was not good for 20G link

       Change:   During common init, initialize both ports to 20G-DXGXS, and
                 put the lanes in reset

       Impact:   57840 - 2x20G ports

    Enhancements:
    -------------
    1.  Request: New PCIE Gen3 microcode available (ver: D103; checksum
                 = 0x42a4).

        Change:  1) Enabled all RX EQ tuning adaptation loops.
                 2) Desired linkup preset = 7.
                 3) Average Gen3 X8 link up time = 20ms.

        Impact:  578xx

    2.  Request: New Warpcore microcode available (ver: D103; checksum
                 = 0x4049).

        Change:  1) Optimized OSDFE tuning flow.  This fixes JIRA
                    CRWARPCORE-147 (WC B0 needs extended AN timer to
                    interop with HC).
                 2) Adjusted signal detect for 807X interoperability.
                 3) Implemented SW CL72 for VOLTRON.

        Impact:  578xx

    3.  Request: Turn on temperature input for PCIE and Warpcore Serdes
                 equalization logic.

        Change:  As requested. Also, Warpcore initialization is now
                 preserving that register value (no longer blindly
                 overwrite it).

        Impact:  578xx

    4.  Request: Add autoneg parallel detect and pause support for 578xx KR

        Change:  As requested

        Impact:  578xx-KR

Version 7.0.0 (Jan 13, 2011)
============================
    Initial Release
    Supports the following traffic protocols:
    - DCBX
    - DCC
    - LLDP
    - NCSI
    - NPAR-SD
